MySQL select 包含 \ 的字符串 - 字符串是 IN () 的一部分

MySQL select string with \ in it - string is part of IN ()

从 MySQL 数据库中,我试图 select 一个包含两次 \ 的列。 \ 包围文本。它出现在我尝试使用 IN ().

搜索的术语列表中的一个术语中

这是我要编写的查询:

SELECT
q.pk_id,
q.test_temp,
q.financ_course,
q.etc_id
FROM quckdbase q
WHERE q.display IN ('Martin','Google test document.',"\'Margaret course economics\'.");

如您所见,WHERE 子句中的 最后一项是问题的根源 。对于这个术语,数据库中的确切条目是

\'Margaret course economics\'.

条目末尾有一个句点 .

此查询的作用: 如果列 display 包含与 MartinGoogle test document.\'Margaret course economics\.'.[=24= 中的任何一个匹配的条目,则它 select 是 4 列中的值]

有没有办法在 IN () 中包含第三个搜索词,以便它可以与其他 2 个词同时搜索?

在文字字符串值中,用另一个反斜杠字符转义反斜杠。此外,单引号可以通过在其前面加上另一个单引号来转义。

要"match"字符串,你可以这样做:

WHERE q.display IN ('\''Margaret course economics\''.')

第一个反斜杠是 "escape",第二个反斜杠被解释为文字反斜杠字符。字符串文字中的两个单引号被解释为文字单引号。

为了测试,确认这个文字返回的值:

SELECT '\''Margaret course economics\''.' AS val