MariaDB - Регулярное выражение
Помимо сопоставления с образцом, доступного в предложениях LIKE, MariaDB предлагает сопоставление на основе регулярных выражений с помощью оператора REGEXP. Оператор выполняет сопоставление с образцом для строкового выражения на основе заданного образца.
MariaDB 10.0.5 представила регулярные выражения PCRE, которые значительно расширяют область сопоставления в таких областях, как рекурсивные шаблоны, утверждения с прогнозированием и многое другое.
Просмотрите использование стандартного синтаксиса оператора REGEXP, приведенного ниже -
SELECT column FROM table_name WHERE column REGEXP '[PATTERN]';
REGEXP возвращает 1 при совпадении с шаблоном или 0 при его отсутствии.
Возможен противоположный вариант в виде NOT REGEXP. MariaDB также предлагает синонимы для REGEXP и NOT REGEXP, RLIKE и NOT RLIKE, которые были созданы по соображениям совместимости.
Сравниваемый шаблон может быть буквальной строкой или чем-то еще, например столбцом таблицы. В строках используется escape-синтаксис C, поэтому удваивайте любые символы «\». REGEXP также нечувствителен к регистру, за исключением двоичных строк.
Таблица возможных шаблонов, которые можно использовать, приведена ниже -
Старший Нет | Узор и описание |
---|---|
1 | ^ Соответствует началу строки. |
2 | $ Он соответствует концу строки. |
3 | . Соответствует одному символу. |
4 | [...] Соответствует любому символу в скобках. |
5 | [^...] Соответствует любому символу, не указанному в скобках. |
6 | p1|p2|p3 Соответствует любому из шаблонов. |
7 | * Соответствует 0 или более экземплярам предыдущего элемента. |
8 | + Он соответствует одному или нескольким экземплярам предыдущего элемента. |
9 | {n} Соответствует n экземплярам предыдущего элемента. |
10 | {m,n} Он соответствует от m до n экземпляров предыдущего элемента. |
Просмотрите примеры сопоставления с образцом, приведенные ниже -
Товары на букву «pr» -
SELECT name FROM product_tbl WHERE name REGEXP '^pr';
Продукты, заканчивающиеся на «na» -
SELECT name FROM product_tbl WHERE name REGEXP 'na$';
Произведения на гласную -
SELECT name FROM product_tbl WHERE name REGEXP '^[aeiou]';