我的公司以NO_BACKSLASH_ESCAPES模式运行MySQL。在这种模式下,如何转义文字%或_类似LIKE的查询?标准方法是\%,但在此模式下不起作用。
%
_
\%
示例:一列具有以下值:5% off,50% off。以下查询在标准模式下有效,但在NO_BACKSLASH_ESCAPES模式下无效:
5% off
50% off
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 '|';