【问题标题】:Update or Else Insert, Multiple Rows更新或其他插入,多行
【发布时间】:2013-02-18 00:24:37
【问题描述】:

我有一个包含五列的表: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 设置值 = field_number 当 field_number_value_1 THEN 'newValue1' 当 field_number_value_2 THEN 'newValue2' 当 field_number_value_3 THEN '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";

【问题讨论】:

  • 我有点搞不懂问题是什么......你的桌子上有什么独特的钥匙吗?
  • 好的,我用我目前使用的东西更新了帖子。

标签: mysql sql


【解决方案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

【讨论】:

  • 这个,我不认为对我有用,因为我没有 UID 而不查询数据库,而且我需要一次执行多个更新。
猜你喜欢
  • 2018-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-04
  • 2018-12-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多