Eu tenho a seguinte situação. Eu tenho que substring expressão regular da descrição usando o MySQL. Descrição:
Lorem D9801 ipsum dolor sit amet
Onde D9801 é REGEXP. Toda descrição de texto forte tem conteúdo diferente, mas meu regexp deve se parecer com: REGEXP 'D [[: digit:]] {4}'
REGEXP sempre tem "D" no início e "xxxx" - 4 dígitos no final: Dxxxx
Eu sei que o REGEXP retorna apenas valor verdadeiro / falso, mas como posso fazer uma consulta para retornar apenas o valor 'D9801'?
Eu tentei algo assim:
SELECT SUBSTRING (description, LOCATE(REGEXP 'D[[:digit:]]{4}', description), 5)
FROM (
SELECT "Lorem D9801 ipsum dolor sit amet" AS description
) temp
Eu sei que está errado, então eu tento com isso:
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;
Mas como encontrar a posição do regexp?
Ouvi falar em UDF, mas não posso usá-lo, uso hospedagem OVH.