我有一个名为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/">
注意:<img src="">
的内部可以包含宽度,高度,类或ID。
赞:
<img src="" class="" id="">
OR
<img width="" height="" src="" class="" id="">
。
我已经从这里尝试过这个: Extract the URL from img src with a mysql query
其中一些返回图片网址,但其中一些不会返回。
这是我到目前为止的查询:
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
答案 0 :(得分:0)
如果您不更改数据的结构,那么此数据非常适合您。
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;