WordPress正在保存许多有关用户和设置的信息,包括表名。如果必须更改WordPress表前缀(例如,如果两个WordPress安装使用相同的数据库,则可能有必要),这非常烦人。
您必须更新wp_options
表中的许多键,这些键是这样收集的:
SELECT * FROM `myprefix_options` WHERE `option_name` LIKE '%wp_%'
您还必须更新wp_usermeta
表中的许多键,这些键是这样收集的:
SELECT * FROM `myprefix_usermeta` WHERE `meta_key` LIKE '%wp_%'
因此,此处显示的查询将提供给定的结果。现在,我正在搜索以下高级查询:
对于(选择查询结果集)中的每个结果,请使用新的前缀元关键字替换meta_key的值。
示例:
[umeta_id][user_id][meta_key][meta_value]
1|1|oldprefix_foo|whatever
2|2|oldprefix_bar|abc
应成为:
[umeta_id][user_id][meta_key][meta_value]
1|1|newprefix_foo|whatever
2|2|newprefix_bar|abc
如何才能(单个)实现MySQL查询?
编辑: 根据@Solarflare的输入,我们假设以下内容。
答案 0 :(得分:1)
根据建议使用Mysql替换。它区分大小写(我只是在测试多站点上仔细检查了)。因此,SQL将是:
Usermeta:
UPDATE newprefix_usermeta SET meta_key=REPLACE(meta_key,'oldprefix','newprefix') WHERE meta_key like 'oldprefix%';
选项:
UPDATE newprefix_options SET option_name=REPLACE(option_name,'oldprefix','newprefix') WHERE option_name like 'oldprefix%' ;