Почему регулярное выражение перестало работать в новой версии MySql?

Почему регулярное выражение перестало работать после обновления версии MySQL? Какое выражение можно использовать вместо него?
  • 15 февраля 2024 г. 14:58
Ответы на вопрос 2
Существует несколько возможных причин, по которым регулярное выражение может перестать работать после обновления версии MySQL:

1. Изменение синтаксиса: MySQL может внести изменения в синтаксис регулярных выражений между версиями. Это может потребовать исправления регулярного выражения для его совместимости с новой версией MySQL.

2. Изменение реализации: Некоторые версии MySQL могут использовать различные регулярные выражения движка. Например, в MySQL 8.0 используется движок регулярных выражений ICU, в то время как в предыдущих версиях использовался древний движок практически не поддерживаемый.

3. Ошибка или баг: Иногда регулярные выражения могут содержать ошибку или сбой в реализации MySQL. В новой версии это может быть исправлено, но также может привести к изменению поведения регулярного выражения.

Для замены регулярного выражения в MySQL можно использовать другие строковые функции и операторы. Например, функция LIKE или операторы REGEXP и RLIKE могут служить альтернативой регулярным выражениям в некоторых случаях.

Однако, без контекста и информации о конкретном регулярном выражении, которое перестало работать, трудно дать конкретные рекомендации. Более конкретный ответ можно получить, если предоставить подробности о регулярном выражении и версии MySQL, с которой возникла проблема.
RTFM: https://dev.mysql.com/doc/refman/8.0/en/regexp.htm... 
Prior to MySQL 8.0.4, MySQL used the Henry Spencer regular expression library to support regular expression operations, rather than International Components for Unicode (ICU).
...
The Spencer library supports word-beginning and word-end boundary markers ([[:<:]] and [[:>:]] notation). ICU does not. For ICU, you can use \b to match word boundaries; double the backslash because MySQL interprets it as the escape character within strings.
\\b111,222,333\\b
Похожие вопросы