J'ai la situation suivante. Je dois sous-chaîne l'expression régulière de la description en utilisant MySQL. La description:
Lorem D9801 ipsum dolor sit amet
Où D9801 est REGEXP. Chaque description textuelle forte a un contenu différent, mais mon expression rationnelle devrait ressembler à ceci: REGEXP 'D [[: digit:]] {4}'
REGEXP a toujours "D" au début et "xxxx" - 4 chiffres à la fin: Dxxxx
Je sais que le REGEXP ne renvoie que la valeur vraie / fausse, mais comment puis-je faire une requête pour renvoyer uniquement la valeur 'D9801'?
J'ai essayé quelque chose comme ça:
SELECT SUBSTRING (description, LOCATE(REGEXP 'D[[:digit:]]{4}', description), 5)
FROM (
SELECT "Lorem D9801 ipsum dolor sit amet" AS description
) temp
Je sais que c'est faux, alors j'essaye avec ceci:
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;
Mais comment trouver la position de l'expression rationnelle?
J'ai entendu parler d'UDF mais je ne peux pas l'utiliser, j'utilise l'hébergement OVH.