Я экспериментирую со строками сопоставления с образцом в MySQL 8.0:
CREATE TABLE foo (bar VARCHAR(250));
INSERT INTO `foo` (`bar`) VALUES ('\%');
В качестве упражнения я хотел бы написать конкретный c запрос, используя LIKE
, который возвращает строки, которые "как буквальный \%
". (я знаю, что на самом деле это должно быть сделано с =
сравнением, но это упражнение)
Поскольку %
является подстановочным знаком, я не могу просто используйте:
SELECT * from `foo` WHERE `bar` LIKE '\%';
Когда я пытаюсь сбежать, используя escape-символ по умолчанию \
, он также завершается неудачно:
SELECT * from `foo` WHERE `bar` LIKE '\\%';
И также, когда я пытаюсь использовать ключевое слово ESCAPE
для определения escape-символа не по умолчанию:
SELECT * from `foo` WHERE `bar` LIKE '\|%' ESCAPE '|';
Почему у меня не работают запросы 2 и 3?