如果有人将'%'
传递给我的sql与su.username LIKE CONCAT('%', email ,'%'))
进行比较的字段,则返回所有行。它最终看起来像su.username LIKE CONCAT('%%%')
。我是否可以在不过滤'%'
的情况下解决这个问题?
答案 0 :(得分:3)
我假设您的意思是想要转义%
,以便它与文字%
匹配而不是任何内容。
在这种情况下,您只需要:
... su.username LIKE CONCAT('%',REPLACE(email,'%','\\%'),'%')
答案 1 :(得分:0)
你需要转义%,所以它实际上匹配'%'
select * from mytable
where mycol like '%\%%';