MySql 转义\和 ' in a Like statement don' t 工作

标签 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\\\'%'

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

附言。 : 表字符集是 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/

相关文章:

mysql - 删除除前 20 个新行之外的所有旧行

php - mysqli - 如何在不修改结果集的情况下获取行?

java - 突出显示包含 HTML 的字段

mysql - 您如何通过全文 boolean 搜索来查找术语 C++?

mysql - 选择当前日期之后包含特定数字的行

mysql - INNER JOIN 导致查询执行时间很长

mysql - 如何在MySql中转义撇号(单引号)?

java - 禁用 XML 中的自动 & 转义?

mysql - 需要 MySQL 查询帮助

windows - 如何转义批处理文件中的符号?