当满足条件时,mysql从另一个表替换表数据

时间:2012-03-13 04:24:17

标签: mysql

我正在为Wordpress Multisite安装数据库工作,需要将多个字段(但不是全部)从一个表复制到另一个表中,替换现有内容和/或添加行(如果它们不存在)。

其他地方也有类似的答案,但我似乎无法弄清楚这一点。

表是可源表和目标表

列是option_name和option_value

基本上,如果option_name field = condition1出现在来自sourcetable的targettable copy option_value字段中并替换targettable option_value字段,如果不存在则添加

想用一个查询更新/替换多个字段

REPLACE or UPDATE option_value_field in targettable with data 
from sourcetable value_field 
where name_field equals "condition1"

REPLACE or UPDATE option_value_field in targettable with data 
from sourcetable value_field 
where name_field equals "condition2"

REPLACE or UPDATE option_value_field in targettable with data 
from sourcetable value_field
where name_field equals "condition3" (add if does not exist)

感谢

1 个答案:

答案 0 :(得分:0)

使option_name字段唯一,并使用INSERT...ON DUPLICATE KEY UPDATE语句在targettable中插入/替换值 -

INSERT INTO targettable
SELECT * FROM sourcetable
ON DUPLICATE KEY UPDATE option_value = VALUES(option_value)