MySQL中的方括号LIKE

Dan*_*sta 2 mysql sql sql-like

我有一个表(我们称之为A),其中一个文本字段被调用references_int,其中包含许多值.一个例子是'internal\reference[111]'.

如果我做

SELECT * 
FROM A 
WHERE references_int LIKE 'internal\\reference[111]'
Run Code Online (Sandbox Code Playgroud)

它将返回零行.但是,如果我更换LIKE=它的工作原理.

我使用一个简化查找查询的框架,但它使用LIKE..有没有办法让它工作?

不知道这是一个错误还是一个功能.

谢谢!

Joã*_*lva 5

逃避每个\:

SELECT * 
FROM A 
WHERE references_int LIKE 'internal\\\\reference[111]'
Run Code Online (Sandbox Code Playgroud)

默认情况下,如果不指定一个ESCAPE字符LIKE,\假设,按照该文件.另一种方法是使用不同的ESCAPE字符:

SELECT * 
FROM A 
WHERE 'internalrefer\\ence[111]' LIKE 'internalrefer\\ence[111]' ESCAPE '#'
Run Code Online (Sandbox Code Playgroud)

  • +1.正如[doc](http://dev.mysql.com/doc/refman/5.6/en/string-comparison-functions.html#operator_like)所解释的那样,"要搜索'`\`',请将其指定为' '\\\\`'". (2认同)