MySQL和LIKE与%的比较

时间:2012-06-15 23:35:42

标签: mysql sql-like

如果有人将'%'传递给我的sql与su.username LIKE CONCAT('%', email ,'%'))进行比较的字段,则返回所有行。它最终看起来像su.username LIKE CONCAT('%%%')。我是否可以在不过滤'%'的情况下解决这个问题?

2 个答案:

答案 0 :(得分:3)

我假设您的意思是想要转义%,以便它与文字%匹配而不是任何内容。

在这种情况下,您只需要:

... su.username LIKE CONCAT('%',REPLACE(email,'%','\\%'),'%')

答案 1 :(得分:0)

你需要转义%,所以它实际上匹配'%'

select * from mytable
where mycol like '%\%%';