如何合并两个MySQL数据库,但仅在列匹配时?

时间:2017-10-04 14:02:53

标签: mysql wordpress phpmyadmin

在使用更新版本覆盖旧的Wordpress网站后,我遇到了一个问题。遗憾的是,在此过程中丢失了一些高级自定义字段值。

我有旧网站的数据库备份,其中包含我需要使用正确内容填充的字段的表格。

根据这些条件,我有办法将这个旧数据库与当前数据库合并:

  • 仅合并wp_postmeta表
  • 仅覆盖meta_key为meta_value
  • pdf
  • 别无其他

Every meta_value where meta_key is pdf should get updated

1 个答案:

答案 0 :(得分:0)

您可以通过多种方式执行此操作。我就是这样做的。

  • 将旧数据库还原到单独的数据库(db_old)
  • 关闭自动提交
  • 运行更新
  • 检查数据
  • commit
  • 庆祝一些咖啡

未经测试的更新声明......

UPDATE db.wp_postmeta a
JOIN db_old.wp_postmeta b on a.meta_id = b.meta_id 
and a.post_id = b.post_id
set a.meta_value = b.meta_value
where a.meta_key = 'pdf';    

以下是更新的doc refs: https://dev.mysql.com/doc/refman/5.7/en/update.html

更新文档引用table_reference,此处记录了以下内容: https://dev.mysql.com/doc/refman/5.7/en/join.html