次のような状況があります。MySQLを使用して、記述から正規表現を部分文字列にする必要があります。説明:
Lorem D9801 ipsum dolor sit amet
D9801はREGEXPです。すべての強力なテキスト記述は、異なるコンテンツを持っていますが、私の正規表現すべきであるように見えます:REGEXP「D [[:桁:]] {4}」
REGEXPの先頭は常に「D」、末尾は「xxxx」-末尾は4桁:Dxxxx
REGEXPがtrue / false値のみを返すことは知っていますが、「D9801」値のみを返すクエリを作成するにはどうすればよいですか?
私はこのようなことを試しました:
SELECT SUBSTRING (description, LOCATE(REGEXP 'D[[:digit:]]{4}', description), 5)
FROM (
SELECT "Lorem D9801 ipsum dolor sit amet" AS description
) temp
私はそれが間違っていることを知っているので、これを試してみます:
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;
しかし、正規表現の位置を見つける方法は?
UDFについて聞いたことがありますが、使用できません。OVHホスティングを使用しています。