gpt4 book ai didi

mysql - 像 search 和 = search 这样对 mysql 的困惑

转载 作者:行者123 更新时间:2023-11-29 01:49:31 25 4
gpt4 key购买 nike

我在用mysql search something的时候遇到了这个问题。这是详细信息。

假设我有一个名为 test 的表,其中有一列名为 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 运算符根据模式选择数据。

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

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

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

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

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

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

= > < >= <= <> !=

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

关于mysql - 像 search 和 = search 这样对 mysql 的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50771201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com