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;Почта Hotmail или Outlook
MySQL 8.1
SELECT name,
email
FROM Users
WHERE REGEXP_LIKE(email, '@(hotmail|outlook)[.]com$');Подробности
Совпадение ищется в любом месте строки. Чтобы проверить строку целиком, начните выражение с ^ и закончите $. Регистр по умолчанию зависит от сопоставления (collation) строки, в учебных базах он не учитывается.
Флаги в match_type можно комбинировать, при противоречии действует последний: