Как избежать буквального знака процента, когда опция NO_BACKSLASH_ESCAPES включена? - PullRequest
46 голосов
/ 16 февраля 2011

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

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

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

1 Ответ

57 голосов
/ 16 февраля 2011

вам нужен escape

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

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

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