在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
包含与Martin
,Google test document.
,\'Margaret course economics\.'
中的任何一个匹配的条目,它会选择4列中的值。
有没有办法在IN ()
中包含第三个搜索字词,以便可以与其他两个字词并行搜索?
答案 0 :(得分:1)
在文字字符串值中,使用另一个反斜杠字符转义反斜杠。此外,单引号可以通过在其前面添加另一个单引号来转义。
要“匹配”字符串,您可以这样做:
WHERE q.display IN ('\\''Margaret course economics\\''.')
第一个反斜杠是“转义”,第二个反斜杠被解释为文字反斜杠字符。字符串文字中的两个单引号被解释为文字单引号。
进行测试,确认此文字返回的值:
SELECT '\\''Margaret course economics\\''.' AS val