Tôi có tình huống sau đây. Tôi phải xâu chuỗi biểu thức chính quy từ mô tả bằng MySQL. Sự miêu tả:
Lorem D9801 ipsum dolor ngồi amet
Trong đó D9801 là REGEXP. Mỗi mô tả văn bản mạnh có nội dung khác nhau, nhưng biểu thức chính của tôi sẽ giống như: REGEXP 'D [[: chữ số:]] {4}'
REGEXP luôn có "D" ở đầu và "xxxx" - 4 chữ số ở cuối: Dxxxx
Tôi biết REGEXP chỉ trả về giá trị đúng / sai, nhưng làm cách nào tôi có thể thực hiện truy vấn để chỉ trả về giá trị 'D9801'?
Tôi đã thử một cái gì đó như thế này:
SELECT SUBSTRING (description, LOCATE(REGEXP 'D[[:digit:]]{4}', description), 5)
FROM (
SELECT "Lorem D9801 ipsum dolor sit amet" AS description
) temp
Tôi biết đó là sai, vì vậy tôi thử với điều này:
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;
Nhưng làm thế nào để tìm vị trí của regrec?
Tôi đã nghe nói về UDF nhưng tôi không thể sử dụng nó, tôi sử dụng lưu trữ OVH.