Справочник по функциям

REGEXP_LIKE

Проверяет, соответствует ли строка регулярному выражению.

MySQL 8.1
REGEXP_LIKE(expr, pattern[, match_type])

Параметры

exprVARCHAR
Проверяемая строка
patternVARCHAR
Регулярное выражение
match_typeVARCHARнеобязательный
Флаги сопоставления, например c — с учётом регистра

Возвращаемое значение

1, если совпадение есть, иначе 0; NULL, если expr или pattern равен NULL

Примеры

Проверка без учёта и с учётом регистра

MySQL 8.1
SELECT REGEXP_LIKE('Anna', '^an') AS ignore_case,
	REGEXP_LIKE('Anna', '^an', 'c') AS match_case;
ignore_casematch_case
10

Почта Hotmail или Outlook

MySQL 8.1
SELECT name,
	email
FROM Users
WHERE REGEXP_LIKE(email, '@(hotmail|outlook)[.]com$');
nameemail
Bruce Willisbarjam@hotmail.com
Jennifer Lopezbarjam@hotmail.com
Samuel L. Jacksonmoonlapse@outlook.com
Harrison Fordkostas@hotmail.com
Steve Martinnelson@outlook.com
Michael Douglastimtroyr@hotmail.com
Catherine Zeta-Jonesflakeg@hotmail.com

Подробности

Совпадение ищется в любом месте строки. Чтобы проверить строку целиком, начните выражение с ^ и закончите $. Регистр по умолчанию зависит от сопоставления (collation) строки, в учебных базах он не учитывается.

Флаги в match_type можно комбинировать, при противоречии действует последний:

ФлагОписание
cС учётом регистра
iБез учёта регистра
mМногострочный режим: ^ и $ совпадают с началом и концом каждой строки текста
nТочка . совпадает и с переводом строки
uКонцом строки текста считается только \n

Смотрите также