Как создавать регулярные выражения в SQL

Регулярное выражение — это последовательность символов, используемая для сопоставления шаблона со строкой. Вы можете использовать его для поиска текста и проверки ввода.

Помните, что регулярное выражение не является свойством определенного языка.

Регулярное выражение должно быть заключено в одинарные кавычки. Это гарантирует, что все выражение интерпретируется функцией SQL.

Метасимволы, поддерживаемые в регулярных выражениях

Символ Описание
. Соответствует любой символ.
+ Соответствует одному или несколько вхождений предыдущего подвыражения.
? Соответствует нулю или одному вхождению предыдущего подвыражения.
∗ * ∗ Соответствует нулю или более вхождений предыдущего подвыражения.
{m} Точно соответствует m m m вхождений предыдущего подвыражения.
Соответствует как минимум mm m вхождения предыдущего подвыражения.
{m, n} Соответствует не менее m m семантика> m, но не более , чем n n n, вхождения предыдущего подвыражения.
[ …] Соответствует любому символу в списке.
[^…] Соответствует любому символу не в списке.
Обрабатывает следующий метасимвол в выражении ression как литерал.
^ Сопоставлять последующее выражение только тогда, когда оно встречается в начале строки.
$ Соответствует предыдущему выражению, только если оно встречается в конце строки.

Создание регулярных выражений в SQL

MySQL позволяет сопоставлять шаблоны с помощью оператора REGEXP .

См. синтаксис ниже :

  SELECT column_listFROM table_nameWHERE string_column REGEXP pattern; 

Примеры

Рассмотрим следующий сотрудники таблица:

 СОЗДАТЬ ТАБЛИЦУ сотрудников (emp_id int, emp_name varchar (20), dept varchar (20), age int); INSER  T INTO сотрудники (emp_id, emp_name, dept, age) VALUES (1, "John", "Intern", 25); INSERT INTO сотрудники (emp_id, emp_name, dept, age) VALUES (5, "jake", "Intern"  , 25); ВСТАВИТЬ сотрудников (emp_id, emp_name, dept, age) ЗНАЧЕНИЯ (2, «Дэвид», «Стажер», 30); ВСТАВИТЬ сотрудников (emp_id, emp_name, dept, age) ЗНАЧЕНИЯ (3, «Майк»  , "Инженер", 29); ВСТАВИТЬ сотрудников (emp_id, emp_name, dept, age) VALUES (4, "Alex", "HR", 27); 

id имя dept возраст
1 Джон Стажер 25
2 Дэвид Стажер 30
3 Майк Инженер 29
4 Alex HR 27
5 Джейк Стажер 25

Взгляните на приведенные ниже примеры; они показывают, как создавать регулярные выражения (и использовать их) с помощью оператора REGEXP .

Если вам нужен REGEXP для сравнения строк с учетом регистра, вы можете использовать оператор BINARY для преобразования строки в двоичную строку

 - чтобы найти сотрудников, имена которых начинаются с  символ j, используйте - метасимвол '^' для соответствия в начале имени. ВЫБЕРИТЕ emp_nameFROM employeeWHERE emp_name REGEXP '^ j'; - соответствует только прописной букве "J" в начале названия продукта.SELECT emp_nameFROM employeeWHERE emp_name REGEXP BINARY '^ J'; - Чтобы найти продукт, имя которого заканчивается на f, используйте  'f $' to - соответствует концу строки.SELECT emp_nameFROM employeeWHERE emp_name REGEXP 'e $'; - Чтобы найти продукт, имя которого содержит букву «k», - используйте следующий запрос: SELECT emp_nameFROM employeeWHERE emp_name  REGEXP 'k'; - Чтобы найти продукт, имя которого содержит ровно 10 символов, - используйте '^' и '$, чтобы сопоставить начало и конец имени продукта, - и повторите {10} раз любой символ'  . '  между ними, как показано - в следующем запросе: SELECT emp_nameFROM employeeWHERE emp_name REGEXP '^. {10} $'; 

Оцените статью
nanomode.ru
Добавить комментарий