Как избежать символа буквенного процента, когда включена опция NO_BACKSLASH_ESCAPES?

Моя компания запускает MySQL в режиме NO_BACKSLASH_ESCAPES. Как я могу избежать литерала % или _ в запросе LIKE в этом режиме? Стандартный способ - \%, но это не работает в этом режиме.

Пример: столбец имеет следующие значения: 5% off, 50% off. Следующий запрос работает в стандартном режиме, но не в режиме NO_BACKSLASH_ESCAPES:

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

Ответ 1

вам нужно бежать

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

Для версии, которая работает независимо от режима NO_BACKSLASH_ESCAPES, вы можете использовать другой символ, например pipe:

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