Почему не отрабатывает запрос с регуляркой в MySQL?

Есть таблица schedule с колонкой teacher, в которой могут хранится следующие значения:
  • Давыдов М.Р. Лебедев В.Н. Баранникова А.Н. Яненко Е.Ю.
  • Яненко Е.Ю.
  • Баранникова А.Н.
  • Симонова И.В.
  • Недякина А.П. Мастюгина О.В.

Я хочу получить только те значения где указано одно ФИО
Пишу запрос
SELECT DISTINCT teacher FROM schedule WHERE teacher REGEXP '^[А-ЯЁ][а-яё]+\s[А-ЯЁ]\.[А-ЯЁ]\.$'

В ответ получаю пустоту.
Проверял на regex101, вроде регулярка отрабатывает нормально. В чем моя проблема?
  • Вопрос задан
  • 60 просмотров
Решения вопроса 1
@dodo512
Обратных слешей нужно в два раза больше.
https://dev.mysql.com/doc/refman/8.0/en/regexp.htm...
To use a literal instance of a special character in a regular expression, precede it by two backslash (\) characters. The MySQL parser interprets one of the backslashes, and the regular expression library interprets the other.

'^[А-ЯЁ][а-яё]+\\s[А-ЯЁ]\\.[А-ЯЁ]\\.$'
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы