Dan*_*pos 1 mysql sql string wordpress
我正在帮朋友,让他离开Blogger并进入托管的WordPress博客.
最大的问题是,有超过1,800个帖子,有很多图像链接需要处理.WordPress没有自动导入这些的机制,所以我是手动完成的.
我已经使用wget来下载网站上链接/嵌入的每个图像.现在,我需要一些帮助来构建MySQL查询,以将博客中的所有图像更改为新地址.
例如:
http://www.externaldomain.com/some/link/to/an/image.jpg
Run Code Online (Sandbox Code Playgroud)
应该成为:
http://www.newbloghosting.com/wordpress/wp-content/uploads/legacy/www.externaldomain.com/some/link/to/an/image.jpg
Run Code Online (Sandbox Code Playgroud)
所以条件是,如果post_content中的字符串以jpeg,jpg,gif或png结尾,则替换:
http://
Run Code Online (Sandbox Code Playgroud)
同
http://www.newbloghosting.com/wordpress/wp-content/uploads/legacy/
Run Code Online (Sandbox Code Playgroud)
我知道怎么做毯子更换
UPDATE wp_posts SET post_content = replace(post_content, 'http://www.old-domain.com', 'http://www.new-domain.com');
Run Code Online (Sandbox Code Playgroud)
但是我很难弄清楚如何实现我更细致,有条件的方法.
感谢您提供的任何指导.(在这里发布或者在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');
Run Code Online (Sandbox Code Playgroud)
如果是我,我还会做两件事:将它转换为小写以匹配例如'.JPG',并在jpg,gif等之前匹配点:
WHERE LOWER(RIGHT(post_content, 5)) = '.jpeg'
OR LOWER(RIGHT(post_content, 4)) IN ('.jpg', '.gif', '.png');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5066 次 |
| 最近记录: |