2012-03-13 89 views
0

我的數據庫WordPress的多站點上工作的安裝,需要複製多個領域(但不是全部)從一個表到另一個表,取代現有的內容和/或增加行如果不存在。的MySQL從另一個表替換表數據時滿足條件

其他地方也有類似的答案,但我似乎無法弄清楚這一點。

表是sourceTable會和targettable

列OPTION_NAME和請將option_value

基本上,如果OPTION_NAME field = condition1在targettable拷貝請將option_value字段存在從sourceTable會和替換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) 

感謝

回答

0

製作OPTION_NAME領域獨樹一幟,並使用INSERT...ON DUPLICATE KEY UPDATE語句插入/在targettable替換值 -

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

嗨 - 感謝@Devart的答覆,但我不知道我知道如何得到這個上班。 當你說「make option_name field unique」時 - 這是如何工作的?那是/我如何分配條件? 我不想替換所有字段,只有少數選項名稱=「條件值」,如果目標表沒有該值,請添加它。 – user1265590 2012-03-13 11:15:56

相關問題