Учебники

MySQL — регулярные выражения

Вы видели сопоставление с шаблоном MySQL с LIKE …% . MySQL поддерживает другой тип операции сопоставления с образцом на основе регулярных выражений и оператора REGEXP . Если вы знакомы с PHP или PERL, то вам очень просто понять, потому что это сопоставление аналогично сценариям регулярных выражений.

Ниже приведена таблица шаблонов, которую можно использовать вместе с оператором REGEXP .

Шаблон Какой шаблон соответствует
^ Начало строки
$ Конец строки
, Любой отдельный персонаж
[…] Любой символ, указанный в квадратных скобках
[^ …] Любой символ, не указанный в квадратных скобках
p1 | p2 | p3 Чередование; соответствует любому из паттернов p1, p2 или p3
* Ноль или более экземпляров предыдущего элемента
+ Один или несколько экземпляров предыдущего элемента
{П} n экземпляров предыдущего элемента
{Т, п} от m до n экземпляров предыдущего элемента

Примеры

Теперь, основываясь на приведенной выше таблице, вы можете использовать различные типы SQL-запросов для удовлетворения ваших требований. Здесь я перечислил несколько для вашего понимания.

Предположим, у нас есть таблица с именем person_tbl, и в ней есть поле с именем name

Запросить поиск всех имен, начинающихся с ‘st’

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';

Запрос, чтобы найти все имена, оканчивающиеся на ‘ok’

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';

Запрос, чтобы найти все имена, которые содержат «Мар»

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';

Запрос, чтобы найти все имена, начиная с гласной и заканчивая ‘ok’