gpt4 book ai didi

sql - MySQL:如果字符串以 jpg、gif 或 png 结尾,则替换子字符串

转载 作者:行者123 更新时间:2023-11-29 04:14:08 25 4
gpt4 key购买 nike

我正在帮一个 friend 的忙,让他离开 Blogger 并进入一个托管的 WordPress 博客。

最大的问题是,有超过 1,800 个帖子,需要处理大量图片链接。 WordPress 没有自动导入这些的机制,所以我手动导入。

我已经使用 wget 下载了网站上曾经链接/嵌入的每一个图像。现在我需要一些帮助来构建 MySQL 查询以将博客中的所有图像更改为它们的新地址。

例如:

http://www.externaldomain.com/some/link/to/an/image.jpg

应该变成:

http://www.newbloghosting.com/wordpress/wp-content/uploads/legacy/www.externaldomain.com/some/link/to/an/image.jpg

所以条件是,如果 post_content 中的字符串以 jpeg、jpg、gif 或 png 结尾,则替换:

http://

http://www.newbloghosting.com/wordpress/wp-content/uploads/legacy/

我知道如何用毯子代替

UPDATE wp_posts SET post_content = replace(post_content, 'http://www.old-domain.com', 'http://www.new-domain.com');

但我很难弄清楚如何完成我更细致、有条件的方法。

感谢您提供的任何指导。 (在此处发布或 ServerFault 之间纠结,但看起来它有很多 MySQL 专家,所以我来了。)

最佳答案

MySQL 有大量可供选择的字符串操作函数,您可以将它们插入查询的 WHERE 部分。

UPDATE wp_posts
SET post_content = REPLACE(post_content, 'http://www.old-domain.com', 'http://www.new-domain.com')
WHERE RIGHT(post_content, 4) = 'jpeg'
OR RIGHT(post_content, 3) IN ('jpg', 'gif', 'png');

不过,如果是我,我会做两件额外的事情:将其转换为小写以匹配,例如'.JPG',匹配jpg、gif等前的点:

WHERE LOWER(RIGHT(post_content, 5)) = '.jpeg'
OR LOWER(RIGHT(post_content, 4)) IN ('.jpg', '.gif', '.png');

关于sql - MySQL:如果字符串以 jpg、gif 或 png 结尾,则替换子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2090928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com