Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果有人将 a 传递'%'给在我的 sql 中与之进行比较的字段,su.username LIKE CONCAT('%', email ,'%'))则会返回所有行。它最终看起来像su.username LIKE CONCAT('%%%')。我可以在不过滤掉的情况下解决这个问题'%'吗?
'%'
su.username LIKE CONCAT('%', email ,'%'))
su.username LIKE CONCAT('%%%')
我假设你的意思是你想逃避,%所以它匹配文字%而不是任何东西。
%
在这种情况下,您只需要:
... su.username LIKE CONCAT('%',REPLACE(email,'%','\\%'),'%')
您需要转义 %,因此它实际上匹配 '%'
select * from mytable where mycol like '%\%%';