关于mysql的混淆,比如搜索和=搜索

时间:2018-06-09 05:28:00

标签: mysql sql-like

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

说我有一个名为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只是做得很好?

1 个答案:

答案 0 :(得分:3)

MySQL LIKE运算符根据模式选择数据

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

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

MySQL提供了两个通配符,可用于LIKE运算符,百分比%和下划线_

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

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

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

  

=> < > =< =<> !=

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