2012-06-15 90 views
1

比較如果有人將'%'傳遞給在我的sql中與su.username LIKE CONCAT('%', email ,'%'))進行比較的字段,它將返回所有行。它最終看起來像su.username LIKE CONCAT('%%%')。無論如何,我是否可以避開'%'MySQL和LIKE與%

回答

3

我假設你的意思是你想逃避%,所以它與文字%相符,而不是任何東西。

在這種情況下,你只需要:

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

我有很多是做這個領域。我應該在代碼還是在SP中處理它? –

0

你需要躲避%,所以它的字面匹配「%」

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