小编Mar*_*jak的帖子

如何在 MySQL 中使用 REGEXP 使用 SUBSTRING

我有以下情况。我必须使用 MySQL 从描述中子字符串正则表达式。描述:

Lorem D9801 ipsum dolor 坐 amet

其中 D9801 是 REGEXP。每个强文本描述都有不同的内容,但我的正则表达式应该如下所示:REGEXP 'D[[:digit:]]{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
Run Code Online (Sandbox Code Playgroud)

我知道这是错误的,所以我尝试这样做:

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; …
Run Code Online (Sandbox Code Playgroud)

mysql regular-expression

16
推荐指数
1
解决办法
6万
查看次数

标签 统计

mysql ×1

regular-expression ×1