启用NO_BACKSLASH_ESCAPES选项时如何逃避文字百分号?

Kip*_*Kip 46 mysql escaping special-characters

我的公司在NO_BACKSLASH_ESCAPES模式下运行MySQL.如何在此模式下转义文字%_LIKE查询?标准方式是\%,但在此模式下不起作用.

示例:列具有以下值:5% off,50% off.以下查询在标准模式下工作,但在NO_BACKSLASH_ESCAPES模式下不起作用:

SELECT * FROM mytable
WHERE mycol LIKE '5\% off'
Run Code Online (Sandbox Code Playgroud)

ajr*_*eal 59

你需要逃避

select * from mytable
where mycol like '5\% off' escape '\';
Run Code Online (Sandbox Code Playgroud)

对于无论NO_BACKSLASH_ESCAPES模式如何工作的版本,您都可以使用不同的字符,例如pipe:

select * from mytable
where mycol like '5|% off' escape '|';
Run Code Online (Sandbox Code Playgroud)