Понимание сопоставления с образцом в MySQL: операторы LIKE и REGEXP

Операторы LIKE и REGEXP в MySQL используются для сопоставления шаблонов в запросах SQL, но они имеют некоторые различия с точки зрения синтаксиса и функциональности.

  1. Оператор LIKE:
    Оператор LIKE используется для простого сопоставления с шаблоном с использованием подстановочных знаков. Это позволяет сопоставлять шаблон со строковым столбцом. С оператором LIKE используются следующие подстановочные знаки:
    • % соответствует любой последовательности символов (включая нулевые символы).
    • ’_’ соответствует любому отдельному символу.

Вот пример, в котором извлекаются все строки из таблицы, в которой столбец «имя» начинается с «Джон»:

SELECT * FROM users WHERE name LIKE 'John%';
  1. Оператор REGEXP:
    Оператор REGEXP позволяет использовать регулярные выражения для сопоставления с образцом в MySQL. Регулярные выражения предоставляют более расширенные возможности сопоставления с образцом по сравнению с оператором «LIKE». Для сопоставления строк можно использовать широкий спектр шаблонов регулярных выражений.

Вот пример, в котором извлекаются все строки из таблицы, в которой столбец «электронная почта» содержит адрес Gmail:

SELECT * FROM users WHERE email REGEXP '.*@gmail\.com';

В этом примере регулярное выражение «.*@gmail.com» соответствует любой строке, содержащей «@gmail.com».