Операторы LIKE и REGEXP в MySQL используются для сопоставления шаблонов в запросах SQL, но они имеют некоторые различия с точки зрения синтаксиса и функциональности.
- Оператор LIKE:
Оператор LIKE используется для простого сопоставления с шаблоном с использованием подстановочных знаков. Это позволяет сопоставлять шаблон со строковым столбцом. С оператором LIKE используются следующие подстановочные знаки:- % соответствует любой последовательности символов (включая нулевые символы).
- ’_’ соответствует любому отдельному символу.
Вот пример, в котором извлекаются все строки из таблицы, в которой столбец «имя» начинается с «Джон»:
SELECT * FROM users WHERE name LIKE 'John%';
- Оператор REGEXP:
Оператор REGEXP позволяет использовать регулярные выражения для сопоставления с образцом в MySQL. Регулярные выражения предоставляют более расширенные возможности сопоставления с образцом по сравнению с оператором «LIKE». Для сопоставления строк можно использовать широкий спектр шаблонов регулярных выражений.
Вот пример, в котором извлекаются все строки из таблицы, в которой столбец «электронная почта» содержит адрес Gmail:
SELECT * FROM users WHERE email REGEXP '.*@gmail\.com';
В этом примере регулярное выражение «.*@gmail.com» соответствует любой строке, содержащей «@gmail.com».