如何更新字段以将值添加到现有值?
Posted
技术标签:
【中文标题】如何更新字段以将值添加到现有值?【英文标题】: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' 如何做到这一点?
【问题讨论】:
你接受的答案和我的有什么区别? 【参考方案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 = 1
和ID = '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'
【讨论】:
以上是关于如何更新字段以将值添加到现有值?的主要内容,如果未能解决你的问题,请参考以下文章