2015-04-03 61 views
0

从MySQL数据库中,我试图选择一个有两个出现\的列。 \围绕文本。它出现在我尝试使用IN()进行搜索的术语列表的一个术语中。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

在字符串值中,用另一个反斜杠字符转义反斜杠。此外,单引号可以通过在另一个单引号之前进行转义来避开。

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

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

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

为了进行测试,以确认该文本返回值:

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

非常感谢。我意识到反斜杠的逃跑,但我不知道单引号的相同。你的答案奏效。 – 2015-04-03 15:01:03