私の会社はNO_BACKSLASH_ESCAPESモードでMySQLを実行しています。このモードのLIKEクエリでリテラル%
または_
をエスケープするにはどうすればよいですか?標準的な方法は\%
ですが、このモードでは機能しません。
例:列には次の値があります:5% off
、50% off
。次のクエリは標準モードで機能しますが、NO_BACKSLASH_ESCAPESモードでは機能しません。
SELECT * FROM mytable
WHERE mycol LIKE '5\% off'
逃げる必要がある
select * from mytable
where mycol like '5\% off' escape '\';
NO_BACKSLASH_ESCAPESモードに関係なく機能するバージョンでは、パイプなどの別の文字を使用できます。
select * from mytable
where mycol like '5|% off' escape '|';