像特殊字符查询的mysql'

pri*_*tel 1 mysql codeigniter sql-like

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

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

它应该返回名称以文本" test " 开头的记录,但如果我修改查询,则不会返回

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

然后它会给出结果.为什么不通过第一次查询给出结果?有没有其他方法可以做到这一点?

Ric*_*ing 5

%是查询中的通配符.
所以%test意味着最终的一切test.
并且test%意味着开始的一切test.
并且%test%意味着一切都test在里面.

Simpy将您的查询更改为

SELECT * FROM (ABC) WHERE (name LIKE "test%")