像特殊字符查询的mysql'

时间:2014-01-10 12:35:12

标签: mysql codeigniter sql-like

我使用name编写了过滤数据查询,并编写了以下查询

SELECT * FROM (`abc`) WHERE (name LIKE "%test\'!&@#$\%-(3)\_er%")

它应该返回名称以文字“ test ”开头的记录 但如果我修改像

这样的查询,它就不会代替
SELECT * FROM (`abc`) WHERE (name LIKE "%test%\'!&@#$\%-(3)\_er%")
然后它会给出结果。为什么不通过第一次查询给出结果? 有没有其他方法可以做到这一点?

2 个答案:

答案 0 :(得分:5)

%是查询中的通配符 因此%test表示以test结尾的所有内容 test%表示以test开头的所有内容 %test%表示其中包含test的所有内容。

Simpy将您的查询更改为

SELECT * FROM ( {ABC {1}}

答案 1 :(得分:0)

如果您想要以test开头的记录,只需使用

即可
SELECT * FROM (`abc`) WHERE (name LIKE "test%")