【问题标题】:How to update a field based on its current value in MySQL?如何根据 MySQL 中的当前值更新字段?
【发布时间】:2011-08-05 19:23:22
【问题描述】:

是否可以获取某个字段的当前值,将其用作计算中的变量,然后根据结果更新该字段?

例如table1中ID为“1”的记录的值为“2”

SELECT table1
WHERE ID = "1"
SET RESULT to CurrentID
RESULT = CurrentID + 1;

【问题讨论】:

    标签: mysql sql sql-update


    【解决方案1】:

    对于ID 列等于“1”的任何行,这会将result 列设置为同一行的CurrentID 列(加1)的值:

    UPDATE table1
    SET result = CurrentID + 1
    WHERE ID = "1"
    

    【讨论】:

      【解决方案2】:

      你可以试试

      Update table1 set ID = ID+1 where ID = 1
      

      【讨论】:

      • 他为什么不直接做SET ID=2 WHERE ID=1
      • 我想我的意思是,如果他一次只做一个ID,那么他可以设置一个显式值并绕过计算
      • @JNK:不,我不是一次只做一个值,我的示例代码很差——甚至不确定这是否可行,所以我试图让代码保持简单尽可能。 John K. 代码似乎可以工作,但我无法让 Oded 工作。
      • 对...我一直在回顾这个问题。不太清楚他为什么这样问,但我想根据这个问题他想做的还有更多……我根据他的例子添加了 where 子句。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-11
      相关资源
      最近更新 更多