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

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

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

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

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