MySql Escaped \和'在Like语句中不起作用

时间:2014-05-12 12:59:06

标签: mysql escaping

我想在MySql 5.5.30中做一个简单的SELECTLIKE语句。 我要查找的数据是数据库中显示的文字:Test d\'un article

我搜索了如何逃避\'并发现我必须逃避每个角色。我做了以下事情:

SELECT
    description
FROM
    myTable
WHERE
    description
LIKE
    '%\\\'%'

此查询正常工作并返回我想要的数据。但如果我像这样寻找整个文本:

LIKE
    'Test d\\\'un article'

查询不返回任何结果。我发现问题来自反斜杠之前的d,因为以下查询也有效

LIKE
    '%\\\'un article'

而且这个没有

LIKE
    '%d\\\'%'

我在其他地方找不到任何类似的问题,希望你能帮助我。

PS。 :表格字符集为latin1_swedich_ci,引擎为MyISAM

1 个答案:

答案 0 :(得分:0)

问题是在LIKE中,你要双重逃避反斜杠。因此,以下查询将起作用

SELECT
    description
FROM
    myTable
WHERE
    description
LIKE
    '%d\\\\\'un article%'
'%d\\\\\'un article%'

,首先\\\\\的双重转义,而\'正在逃避'

相关的问题:
Why I need to double-escape (use 4 \) to find a backslash ( \ ) in pure SQL?