更新或其他插入,多行

时间:2013-02-18 00:24:37

标签: mysql sql

我有一个包含五列的表:uid, lead_id, form_id, field_number, value

我想更新value WHERE lead_id, form_id, and field_number存在。在我的脚本中,我不知道id(不执行查询),但是lead_id, form_id, field_number TOGETHER也是unique。有时,此行将NOT exist并且必须是插入而不是更新。

它变得更复杂,因为我有大约30行,value列,我想要更新/插入,而宁愿在一个查询中执行此操作。

更新 这基本上是我今天使用的,但它不会(显然)更新不存在的行。因此,如果数据最初未填充,但已添加到更新中,则此数据不会添加到数据库中。

以下是我目前的情况:

更新someTableName     SET值= field_number     当field_number_value_1那么'newValue1'     当field_number_value_2那么'newValue2'     当field_number_value_3然后'newValue3'     结束     WHERE form_id = 3 AND lead_id = 37 AND field_number IN field_number_value_1,field_number_value_2,field_number_value_3“;

1 个答案:

答案 0 :(得分: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 ; 

更多信息:ON DUPLICATE KEY UPDATE