Ho la seguente situazione. Devo sottoformare l'espressione regolare dalla descrizione usando MySQL. Descrizione:
Lorem D9801 ipsum dolor sit amet
Dove D9801 è REGEXP. Ogni descrizione di testo forte ha contenuti diversi ma il mio regexp dovrebbe apparire come: REGEXP 'D [[: digit:]] {4}'
REGEXP ha sempre "D" all'inizio e "xxxx" - 4 cifre alla fine: Dxxxx
So che REGEXP restituisce solo il valore vero / falso, ma come posso fare una query per restituire solo il valore 'D9801'?
Ho provato qualcosa del genere:
SELECT SUBSTRING (description, LOCATE(REGEXP 'D[[:digit:]]{4}', description), 5)
FROM (
SELECT "Lorem D9801 ipsum dolor sit amet" AS description
) temp
So che è sbagliato, quindi provo con questo:
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;
Ma come trovare la posizione di regexp?
Ho sentito parlare di UDF ma non posso usarlo, utilizzo l'hosting OVH.