0

5 つの列を持つテーブルがあります: uid, lead_id, form_id, field_number, value.

私は存在を更新したいvalue WHERE lead_id, form_id, and field_number。私のスクリプトでは、(クエリを実行せずに) id を知りませんが、lead_id, form_id, field_numberTOGETHER もunique. 場合によっては、この行をNOT exist更新ではなく挿入する必要があります。

約 30 行、value列があり、更新/挿入したいので、1 つのクエリでこれを実行したいので、さらに複雑になります。

UPDATE これは基本的に私が今日使用しているものですが、存在しない行を (明らかに) 更新していません。したがって、データが最初に取り込まれずに更新に追加された場合、このデータはデータベースに追加されません。

これが私が現在持っているものです:

UPDATE someTableName SET value = field_number WHEN field_number_value_1 THEN 'newValue1' WHEN field_number_value_2 THEN 'newValue2' WHEN field_number_value_3 THEN 'newValue3' END WHERE form_id = 3 AND Lead_id = 37 AND field_number IN field_number_value_1, field_number_value_2, field_number_value_3";

4

1 に答える 1

1
INSERT INTO table (uid, lead_id, form_id, field_number, value) 
VALUES (1, 1, 1, 1, 0) 
ON DUPLICATE KEY UPDATE value = value + 1 ; 

詳細:重複キーの更新について

于 2013-02-18T00:26:57.640 に答える