1

誰かが'%'私のSQLでそれと比較するフィールドにを渡すと、su.username LIKE CONCAT('%', email ,'%'))すべての行が返されます。のようになってしまいsu.username LIKE CONCAT('%%%')ます。とにかくこれを回避することはできます'%'か?

4

2 に答える 2

3

エスケープしたいという意味なので、何かではなく%リテラルと一致すると思います。%

その場合、必要なのは次のとおりです。

... su.username LIKE CONCAT('%',REPLACE(email,'%','\\%'),'%')
于 2012-06-15T23:37:25.757 に答える
0

%をエスケープする必要があるため、文字通り'%'と一致します

select * from mytable
where mycol like '%\%%';
于 2012-06-15T23:38:45.953 に答える