【问题标题】:Increase same column value from multiple rows从多行增加相同的列值
【发布时间】:2017-10-11 00:00:26
【问题描述】:

我正在使用打击查询来更新多行中的列:

UPDATE table SET col = 
(case 
    when id = 1 then 10
    when id = 2 then 20
    when id = 3 then 30
end)

而且我知道如果我想增加col 的值,我应该这样做:

UPDATE table SET col = col+10

但它不适用于更新多个行。
我也试过了:

when id = 1 then (@col := @col + 10)

但这也行不通。
任何人都知道如何将这两者相互连接并在 mysql 的多行中增加一列的值?

【问题讨论】:

  • 请提供样本数据和期望的结果。

标签: php mysql sql increment


【解决方案1】:

如果我没听错的话:

UPDATE table SET col = col +
(case 
    when id = 1 then 10
    when id = 2 then 20
    when id = 3 then 30
end)

【讨论】:

  • 是的,这很容易!但是我不知道为什么我没有太注意!无论如何,TNX :)
【解决方案2】:

寻找这个?

UPDATE table SET col = if(@col is null, @col := col+10, @col)

还是这个?

UPDATE table SET col = if(id = 1, col+10, if(id = 2, col + 20, col + 30))

【讨论】:

  • 感谢您的回答,但@Lashane 告诉了答案:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-04
  • 2019-01-30
  • 2013-08-30
  • 1970-01-01
  • 2022-11-30
  • 1970-01-01
相关资源
最近更新 更多