Пожалуйста, возьмите следующий пример регулярного выражения:
https://regexr.com/4ek7r
Как видите, регулярное выражение прекрасно работает и соответствует размерам (например, 3/16 "и т. Д.) Из описаний продуктов..
Я пытаюсь реализовать это в MySQL 8.0.15, используя REGEXP_SUBSTR()
Согласно документации Я удвоил escape-символы, но регулярное выражениене работает.
Пожалуйста, смотрите следующую скрипту SQL:
https://www.db -fiddle.com / f / e6Ez3XCdU5Ahs91z6TQA8P / 0
Как вы можетевидите, REGEXP_SUBSTR()
возвращает NULL
Я предполагаю, что это проблема с выходом из ситуации, но я не уверен на 100%.
Как я могу гарантировать, что MySQL вернет 1-е совпадение заproduct (row) сродни примеру regexr.com?
Приветствия
Редактировать: 28/05/2019 - основная причина
Ответ Wiktor нижерешил мою проблему, и его регулярное выражение было намного чище и стоило того, чтобы сказать, что я не понимаю, почему моя оригинальная версия не работает после порта из SQL Sкогда-либо к MySQL.Сегодня утром я наконец-то заметил проблему - это не имело ничего общего с регулярным выражением, это была ошибка новичка в конкатенации строк!В частности, я использовал UPPER(Description + ' ')
(то есть, используя +
) - который прекрасно работает в SQL Server, но очевидно;MySQL заставляет числовые!Таким образом, я по существу управлял своим регулярным выражением против 0
!Замена +
на CONCAT
фактически исправила мой исходный запрос на оригинальное регулярное выражение - просто подумала, что поделюсь этим на случай, если это поможет кому-то еще!