我想在 MySql 5.5.30 中做一个简单的 SELECT
和 LIKE
语句。
我正在寻找的数据是数据库中这样呈现的文本:Test d\'un article
。
我搜索了如何转义 \'
并发现我必须转义每个字符。我执行以下操作:
SELECT
description
FROM
myTable
WHERE
description
LIKE
'%\\\'%'
此查询工作正常并返回我想要的数据。但是如果我像这样查找整个文本:
LIKE
'Test d\\\'un article'
查询没有返回结果。我发现问题出在反斜杠之前的 d
,因为以下查询也有效
LIKE
'%\\\'un article'
而这个没有
LIKE
'%d\\\'%'
我在其他地方找不到任何类似的问题,希望你能帮助我解决这个问题。
附言。 : 表字符集是 latin1_swedich_ci
引擎是 MyISAM
最佳答案
问题是在 LIKE
中,您必须对反斜杠进行两次转义。所以下面的查询将起作用
SELECT
description
FROM
myTable
WHERE
description
LIKE
'%d\\\\\'un article%'
在'%d\\\\\'un article%'
中,第一个\\\\
是对\
的双重转义,并且 \'
正在转义 '
相关SO问题:
Why I need to double-escape (use 4 \) to find a backslash ( \ ) in pure SQL?
关于MySql 转义\和 ' in a Like statement don' t 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23609769/