2013-08-01 36 views
2

我的搜索查询是mysql LIKE查询包含&符号。如何让LIKE查询包含这些符号的文本?

SELECT * FROM table1 where table1.field LIKE '%P&G Innovation Center%' 

注意&查询里面。

这并没有给我返回准确的结果。

我该怎么做才能得到准确的结果?

+2

它不应该返回什么?它的作品[这里](http://sqlfiddle.com/#!2/e6e0d/2)。 &符号不是[MySQL特殊字符](http://dev.mysql.com/doc/refman/5.0/en/string-literals.html)。无论如何,如小提琴中所示,逃避似乎并不会造成伤害。 –

+1

结果看起来不对?我会认为,&符号不需要逃避百分号的方式。转义字符是一个反斜杠,所以如果你认为这是一个带有特殊含义的&符号的问题,那么你可以逃避它。 – tuckermi

+1

LIKE应该适用于&符。这个SQLfiddle(http://sqlfiddle.com/#!2/1411d/1)也是如此。你看到什么问题? – ydaetskcoR

回答

0

我使用相同的代码进行ajax搜索和正常的非ajax搜索。

我只在非ajax搜索中检查MySQL查询。

变成ajax搜索,我忘了用encodeURIComponent来正确转义&

傻逼我!

答案:错误原因是由于在JavaScript而不是MySQL级别上丢失了encodeURIComponent(searchQuery)