对 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
是简单模式匹配
我在使用 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
是简单模式匹配