从MySQL表的行中拉出一个以特殊字符开头和结尾的子字符串

时间:2014-08-18 17:59:34

标签: mysql sql

我有一个表articles,其中包含body列。

body列内,我有很多行<img>个标记,例如

----------------------------------------
           body
----------------------------------------
This is <img src="www.abc.com/1"> artcle 1
This is article 2
This is <img src="www.abc.com/2"> article 3
This is article 4

现在我希望获得所有src部分,例如www.abc.com/1www.abc.com/2等。

我使用

获得了所有这些行
select body from articles where body like `%img%`

如何只提取链接(src)部分?

1 个答案:

答案 0 :(得分:0)

您可以使用带有locate和locate的substr方法来查找起始双引号和src =&#34; www.abc.com/1"的结尾双引号;像这样:

SELECT 
    body,
    SUBSTR(
        body, 
        LOCATE('"',body)+1, 
        (CHAR_LENGTH(body) - LOCATE('"',REVERSE(body)) - LOCATE('"',body))
    ) AS 'SRC URL'
FROM articles 
WHERE body LIKE '%img%'

DEMO