关于类似mysql的搜索和=搜索的混淆

关于类似mysql的搜索和=搜索的混淆,mysql,sql-like,Mysql,Sql Like,我在使用mysql搜索时遇到了这个问题。以下是详细信息 假设我得到一个名为test的表,其中一列名为content。在特定记录中,内容列包含: [" /^\w{2,}/"," /^[a-z][a-z0-9]+$/"," /^[a-z0-9]+$/"," /^[a-z]\d+$/"] 行尾有换行符(不包括最后一行) 因此,当我使用like语法来搜索此记录时,我编写了一个类似这样的SQL select * from test where `content` like '[\"\n/^\\\\w{

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

假设我得到一个名为
test
的表,其中一列名为
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+$/\"]'
它返回了正确的结果。但是,当我将
更改为
=
而此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
语句中,我必须使用
\\\\w
\\\\d
,而在
=
语句
\\w
\\d
刚刚好?

操作符中,根据模式选择数据

LIKE
操作符通常用于根据模式选择数据。正确使用
LIKE
操作符对于提高查询性能至关重要

LIKE
运算符允许您根据指定的模式从表中选择数据。因此,在
SELECT
语句的
WHERE
子句中经常使用
LIKE
运算符

MySQL提供了两个通配符与
类似的
操作符一起使用,即百分比
%
和下划线
\uuu

  • 百分比(
    %
    )通配符允许您匹配零个或多个字符的任何字符串
  • 下划线(
    \uu
    )通配符允许您匹配任何单个字符
比较操作
结果的值为1(
TRUE
)、0(
FALSE
)或
NULL
。这些操作适用于数字和字符串。根据需要,字符串自动转换为数字,数字自动转换为字符串

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


=><>=谢谢您的回答@Sinto。我了解一点,我在mysql文档中搜索了这个,但什么也没找到。那么,你能在mysql官方文档中提供一个链接或一些关于这方面的信息,我可以参考一下吗?当然,这里有一个给你:如果我的解释对你有帮助&如果你认为这对其他人有帮助,请把它标记为一个答案。当然,你的答案是有用的,你的链接也是。我在文档中发现了这一点:因为MySQL在字符串中使用C转义语法(例如,\n表示换行符),所以必须将在类似字符串中使用的\加倍。例如,要搜索\n,请将其指定为\\n。要搜索\,请将其指定为\ \;这是因为反斜杠由解析器剥离一次,在进行模式匹配时再次剥离,只留下一个反斜杠进行匹配。