使用REGEXP更新和更改数据库中的WordPress URL

时间:2017-07-07 11:20:02

标签: php mysql regex wordpress

我想将几百个网址更改为帖子内的图片。 URL是指向非活动imagehost上的映像的链接。我有备份,我将它们加载到一个新的imagehost,但我有一个替换问题,因为旧链接有可变,随机的长度。

例如:
hostname.org/image/ciiidl/file_name.jpeg

其中" ciiidl"生成随机

我在SQL中编写了一个命令,但遗憾的是没有替换URL: UPDATE wp_posts SET post_content = REPLACE (post_content, 'https://old_hostname.org/image/[^a-zA-Z0-9]/','https://new_hostname.com/Img/')

我需要使用REGEXP,但我不知道如何与REPLACE结合使用。

2 个答案:

答案 0 :(得分:0)

我认为你只需要:

UPDATE wp_posts
    SET post_content = concat(substring_index(post_content, '/image', 1),
                              '/Img/',
                              substring_index(post_content, '/', -1)
                             )
    WHERE post_content LIKE '%/image/%';

答案 1 :(得分:0)

之前我做了这个更改,但是当链接是静态的时候:

UPDATE wp_posts SET post_content= REPLACE(post_content, 'https://old_hostname.org/image/','https://new_hostname.com/img/')

我刚刚更改了网址的开头。文件名未更改。