我忘记了几年前我为这个精确的任务编写了一个SQL生成器:
https://farinspace.github.io/wp-migrate-gen/
基本上,相关SQL如下所示:
UPDATE `wp_options` SET `option_value` = REPLACE(`option_value`, \'a\', \'b\') WHERE `option_value` NOT REGEXP \'^([adObis]:|N;)\';
UPDATE `wp_posts` SET `post_content` = REPLACE(`post_content`, \'a\', \'b\');
UPDATE `wp_posts` SET `post_excerpt` = REPLACE(`post_excerpt`, \'a\', \'b\');
UPDATE `wp_posts` SET `guid` = REPLACE(`guid`, \'a\', \'b\');
UPDATE `wp_comments` SET `comment_author_url` = REPLACE(`comment_author_url`, \'a\', \'b\');
UPDATE `wp_comments` SET `comment_content` = REPLACE(`comment_content`, \'a\', \'b\');
UPDATE `wp_links` SET `link_url` = REPLACE(`link_url`, \'a\', \'b\');
UPDATE `wp_postmeta` SET `meta_value` = REPLACE(`meta_value`, \'a\', \'b\') WHERE `meta_value` NOT REGEXP \'^([adObis]:|N;)\';
UPDATE `wp_usermeta` SET `meta_value` = REPLACE(`meta_value`, \'a\', \'b\') WHERE `meta_value` NOT REGEXP \'^([adObis]:|N;)\';
UPDATE `wp_termmeta` SET `meta_value` = REPLACE(`meta_value`, \'a\', \'b\') WHERE `meta_value` NOT REGEXP \'^([adObis]:|N;)\';
UPDATE `wp_commentmeta` SET `meta_value` = REPLACE(`meta_value`, \'a\', \'b\') WHERE `meta_value` NOT REGEXP \'^([adObis]:|N;)\';
上面的查询将检查并跳过PHP序列化数据。
使用发电机,您可以关闭;跳过序列化数据“;如果新旧字符串长度匹配。
WARNING: 我建议您在运行任何添加/删除/更新内容的查询之前,始终创建数据备份。