У меня следующая ситуация. Я должен подстроки регулярное выражение из описания, используя MySQL. Описание:
Lorem D9801 Ipsum Долор Сит Амет
Где D9801 - это REGEXP. Каждое сильное текстовое описание имеет различное содержание, но мое регулярное выражение должно выглядеть так: REGEXP 'D [[: digit:]] {4}'
У REGEXP всегда есть «D» в начале и «xxxx» - 4 цифры в конце: Dxxxx
Я знаю, что REGEXP возвращает только значение true / false, но как мне сделать запрос, чтобы вернуть только значение 'D9801'?
Я попробовал что-то вроде этого:
SELECT SUBSTRING (description, LOCATE(REGEXP 'D[[:digit:]]{4}', description), 5)
FROM (
SELECT "Lorem D9801 ipsum dolor sit amet" AS description
) temp
Я знаю, что это неправильно, поэтому я пытаюсь с этим:
SELECT
id,
SUM(description REGEXP 'D[[:digit:]]{4}') AS matches,
CASE
WHEN (SUM(description REGEXP 'D[[:digit:]]{4}') > 0) THEN
SUBSTRING(description, LOCATE( /*POSITION_OF_REGEXP_IN_DESC*/ , description), 5)
ELSE 'Brak schematu'
END AS show_substr FROM ps_description GROUP BY id;
Но как найти положение регулярного выражения?
Я слышал о UDF, но не могу его использовать, я использую хостинг OVH.