【问题标题】:How to update field to add value to existing value?如何更新字段以将值添加到现有值?
【发布时间】:2012-09-26 09:50:09
【问题描述】:

如何更新字段以将值添加到现有值?
例如我有

表名:table

id   credit
1      4
2      5
3      3

有没有办法简单地为信用增加价值?
喜欢

UPDATE table SET credit = '+7' WHERE id='1' 

我想将 7 添加到 4,以便 credit=11 where id='1'
如何做到这一点?

【问题讨论】:

  • 你接受的答案和我的有什么区别?

标签: php mysql sql


【解决方案1】:

UPDATE 语句中只需使用credit = credit + 7 而不是credit = '+7'

UPDATE tablename SET credit = credit + 7 WHERE id = 1

See this SQLFiddle

【讨论】:

    【解决方案2】:

    我想添加一个“ON DUPLICATE KEY UPDATE”示例(基于@hims056 的回答)。我找到了这个答案,但需要“ON DUP ...”,所以我想不妨把它贴在这里。

    INSERT INTO table1 
    (`id`, `credit`)
    VALUES (1, 4)
    ON DUPLICATE KEY UPDATE
    `credit` = `credit` + 7;
    

    See the SQL Fiddle here

    【讨论】:

      【解决方案3】:

      '+' 是一个运算符,所以你需要提供它需要的参数。 '+' 运算符是二元运算符,因此我们需要为其提供两个参数 语法

       value1+value2
      

      虽然它可能需要许多数据类型的参数 通过写 '+7' 你只是发送一个字符串值 "+7" 替换你以前的值

      所以你最好使用

      UPDATE table SET credit = '+7' WHERE id='1'
      

      不要将“+”运算符与其他增量运算符混淆

      【讨论】:

        【解决方案4】:

        这只是一个简单的UPDATE。请尝试以下操作。

        UPDATE tableName
        SET Credit = Credit + 7
        WHERE ID = 1
        

        注意ID = 1ID = '1'是一样的,服务器会自动解析。

        【讨论】:

        • 1 放在ID=1 中并用ID='1' 等单引号括起来不是一个好主意,这样如果ID 值未定义,查询就不会引发错误?
        • 服务器自动解析该值:D
        【解决方案5】:

        试试这个……

        UPDATE table SET credit = credit + 7 WHERE id = 1
        

        【讨论】:

          【解决方案6】:
          UPDATE table SET credit = credit + 7 WHERE id = 1
          

          【讨论】:

            【解决方案7】:

            试试这个代码

            UPDATE table SET credit = credit + 7 WHERE id='1' 
            

            【讨论】:

              猜你喜欢
              • 2018-11-20
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2022-12-13
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多