web-dev-qa-db-ja.com

NO_BACKSLASH_ESCAPESオプションが有効になっているときにリテラルパーセント記号をエスケープする方法

私の会社はNO_BACKSLASH_ESCAPESモードでMySQLを実行しています。このモードのLIKEクエリでリテラル%または_をエスケープするにはどうすればよいですか?標準的な方法は\%ですが、このモードでは機能しません。

例:列には次の値があります:5% off50% off。次のクエリは標準モードで機能しますが、NO_BACKSLASH_ESCAPESモードでは機能しません。

SELECT * FROM mytable
WHERE mycol LIKE '5\% off'
46
Kip

逃げる必要がある

select * from mytable
where mycol like '5\% off' escape '\';

NO_BACKSLASH_ESCAPESモードに関係なく機能するバージョンでは、パイプなどの別の文字を使用できます。

select * from mytable
where mycol like '5|% off' escape '|';
58
ajreal