对 mysql 的困惑 like search and = search

confusion about mysql like search and = search

我在使用 mysql 搜索时遇到了这个问题。这是详细信息。

假设我有一个名为 test 的 table,其中有一列名为 content。在特定记录中,content 列包含:

["
/^\w{2,}/","
/^[a-z][a-z0-9]+$/","
/^[a-z0-9]+$/","
/^[a-z]\d+$/"]

行末有换行符(不包括最后一行) 所以当我使用 like 语法搜索这条记录时,我写了一个 SQL 这样的

select * from test where `content` like 
'[\"\n/^\\w{2,}/\",\"\n/^[a-z][a-z0-9]+$/\",\"\n/^[a-z0-9]+$/\",\"\n/^[a-z]\\d+$/\"]'

它返回了正确的结果。但是当我将 like 更改为 = 并且这个 SQL 语句不起作用时,在我尝试了几次之后,我得到了这个有效的 SQL 语句:

select * from test where `content` = 
'[\"\n/^\w{2,}/\",\"\n/^[a-z][a-z0-9]+$/\",\"\n/^[a-z0-9]+$/\",\"\n/^[a-z]\d+$/\"]'

它起作用了。所以这里是问题: 为什么 like= 有不同的逃生策略?在 like 语句中我必须使用 \\w,\\d 而在 = 语句中 \w,\d 做的很好吗?

MySQL LIKE 运算符到 select 数据 基于模式 .

LIKE 运算符通常用于 select 基于模式的数据。以正确的方式使用 LIKE 运算符对于提高查询性能至关重要。

LIKE 运算符允许您根据指定模式从 table 中 select 数据。因此,LIKE运算符常用于SELECT语句的WHERE子句中。

MySQL 提供了两个通配符与 LIKE 运算符一起使用,百分比 % 和下划线 _.

  • 百分比 (%) 通配符允许您匹配任何包含零个或多个字符的字符串。
  • 下划线 (_) 通配符允许您匹配任何单个字符。

Comparison operations 的结果为 1 (TRUE)、0 (FALSE) 或 NULL。这些操作适用于数字和字符串。根据需要,字符串会自动转换为数字,数字会自动转换为字符串。

以下关系比较运算符不仅可用于比较标量操作数,还可用于比较行操作数:

= > < >= <= <> !=

注意=是等于运算符,LIKE是简单模式匹配