【问题标题】:Extract multiple img src from long text in select mysql从select mysql中的长文本中提取多个img src
【发布时间】:2019-08-03 21:12:14
【问题描述】:

我有一个名为 posts 的表。

它包含id和post_content:

ID  post_title post_content
1   aaaa       <p>AAaa</p><img src="https://domain/uploads/aa.jpg"><p>Addd<img src="https://domain/uploads/assssa.jpg"></p>
2   bbb        <img src="https://domain/uploads/bbbb.jpg"><p>xxxxx<img src="https://domain/uploads/xxxxx.jpg"></p>
3   ccc        <p>aaaaa</p><img src="https://domain/uploads/aa.jpg">

我想从每个具有特定域的 post_content 中提取图像 src。每个 post_content 有多个图像。

就像我只想获取带有这样 url 的图像:

<img src="https://aaaaa.co.jp/uploads/">

注意:&lt;img src=""&gt; 内部可以有宽度、高度、类或 id。

像这样:

&lt;img src="" class="" id=""&gt;

&lt;img width="" height="" src="" class="" id=""&gt;.

我已经从这里尝试过这个: Extract the URL from img src with a mysql query

其中一些会返回图片 url,但有些不会。

这是我目前的查询:

SELECT 
    post.ID,
    post.post_title,
    SUBSTR(SUBSTR(post.post_content,
            LOCATE('src="', post.post_content) + 5),
        1,
        LOCATE('"',
                SUBSTR(post.post_content,
                    LOCATE('src="', post.post_content) + 5)) - 1) AS 'src'
FROM
    tokyo_posts post;

所以这是我想要的输出:

ID  post_title post_content
1   aaaa       https://domain/uploads/aa.jpg
1   aaaa       https://domain/uploads/assssa.jpg
2   bbb        https://domain/uploads/bbbb.jpg
2   bbb        https://domain/uploads/xxxxx.jpg
3   ccc        https://domain/uploads/aa.jpg

注意:我使用的是 wordpress 数据库。我将使用此查询来导入图像。

Mysql版本:5.6.42

【问题讨论】:

  • 在 PHP 中执行此操作对我来说似乎是一个更好的选择。

标签: mysql wordpress


【解决方案1】:

如果您不更改数据的结构,那么这个非常适合您。

SELECT post.ID,
post.post_title,
SUBSTRING(post_content, INSTR(post_content, 'src="') + 5
, INSTR(post_content, '">') - (INSTR(post_content, 'src="') + 5))
FROM
tokyo_posts post;

【讨论】:

  • 我还没有对此进行测试,但src 标签之后可能还有更多属性。因此,以这种方式计算它假定img 标记在src 属性之后结束,因为它查找"&gt;。此外,正如 OP 所述,查询需要捕获post_content 中的所有图像标签并将其报告为新行。
猜你喜欢
  • 2020-03-11
  • 2021-07-16
  • 1970-01-01
  • 1970-01-01
  • 2019-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多