繁体   English   中英

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

[英]Pulling a substring starting and ending with a special character from rows of a MySQL table

我有一个表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)部分?

您可以将substr方法与locate和反向定位一起使用,以从src =“ 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%'

演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM