MySQL选择带有\的字符串 - 字符串是IN()的一部分

时间:2015-04-03 00:17:52

标签: mysql string placeholder

在MySQL数据库中,我正在尝试选择其中出现两次\的列。 \围绕文字。它出现在我尝试使用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\.'中的任何一个匹配的条目,它会选择4列中的值。

有没有办法在IN ()中包含第三个搜索字词,以便可以与其他两个字词并行搜索?

1 个答案:

答案 0 :(得分:1)

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

要“匹配”字符串,您可以这样做:

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

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

进行测试,确认此文字返回的值:

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