Bende şu durum var. MySQL kullanarak açıklama normal ifade subring gerekir. Açıklama:
Lorem D9801 ipsum dolor sit amet
Burada D9801, REGEXP'dir. Her güçlü metin açıklamasının içeriği farklıdır, ancak normal ifadem şöyle görünmelidir: REGEXP 'D [[: digit:]] {4}'
REGEXP'in başında daima "D" ve sonunda "xxxx" vardır - 4 rakam: Dxxxx
REGEXP yalnızca doğru / yanlış değer döndürür biliyorum, ama nasıl sadece 'D9801' değeri döndürmek için sorgu yapabilirim?
Ben böyle bir şey denedim:
SELECT SUBSTRING (description, LOCATE(REGEXP 'D[[:digit:]]{4}', description), 5)
FROM (
SELECT "Lorem D9801 ipsum dolor sit amet" AS description
) temp
Bunun yanlış olduğunu biliyorum, bu yüzden şunu deniyorum:
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;
Ama normal ifade konumu nasıl bulunur?
UDF'yi duydum ama kullanamıyorum, OVH hosting kullanıyorum.