2012-03-13 2 views
0

Wordpress Multisiteをインストールするデータベースで作業していて、あるテーブルから別のテーブルに複数のフィールド(ただしすべてではない)をコピーし、既存のコンテンツを置き換えたり、行が存在しない場合条件が満たされたらmysqlは別のテーブルのテーブルデータを置き換えます

他の場所でも同様の回答がありますが、これを理解できないようです。

テーブルはsourcetableとターゲット表

列がOPTION_NAMEているし、それに

を追加存在しない場合は、基本的

option_value、OPTION_NAME field = condition1場合、sourcetableと交換するターゲット表option_valueフィールドからターゲット表のコピーoption_valueフィールドに存在しています

複数のフィールドを1つのクエリで更新/置換したい場合

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フィールドはユニークな作り、そしてtargettableで値を置き換え/挿入するためにINSERT...ON DUPLICATE KEY UPDATEステートメントを使用 -

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

こんにちは - 返信用のおかげ@Devartが、私はこれを取得する方法を理解していません働く "make option_name field unique"と言えば、どうしますか?それはどこに/どのように条件を割り当てるのでしょうか? 私はすべてのフィールドを置き換えたくないのですが、options_name = "condition value"のほんの少しですが、ターゲットテーブルにその値がない場合は追加してください。 – user1265590

関連する問題