2013-02-18 77 views
0

我有一个表,有五列:uid, lead_id, form_id, field_number, value更新或其他插入,多行

我要更新valueWHERElead_id, form_id, and field_number存在。在我的脚本中,我不知道该ID(没有执行查询),但是lead_id, form_id, field_number TOGETHER也是unique。偶尔,这一行将NOT exist,将不得不插入而不是更新。

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

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

这是我目前有:

UPDATE someTableName 设定值= 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, lead_id = 37和field_number IN field_number_value_1,field_number_value_2,field_number_value_3" ;

+0

我对这个问题是有点困惑。你有没有在桌子上唯一的钥匙? – 2013-02-18 00:26:43

+0

好的,我更新了我目前使用的帖子。 – user2081605 2013-02-18 01:41:18

回答

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

+0

这,我不认为会为我工作,因为我没有查询数据库没有UID,我需要一次执行多个更新。 – user2081605 2013-02-18 13:48:21