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

38

如何更新字段以添加现有值?
例如,我有一个

表名:table

id   credit
1      4
2      5
3      3

是否有一种简单的方式来增加信用额度?
例如

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

我想将 7 加到 4 上,使得 credit=11 且 id='1'
如何做到这一点?


3
你的采纳答案和我的有什么区别? - John Woo
7个回答

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

18

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

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

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


1放在单引号里面,像这样ID='1',这不是一个好主意吗?这样一来,如果ID的值没有定义,查询也不会出错。 - WatsMyName
1
服务器会自动解析该值 :D - John Woo

14

UPDATE语句中,只需使用credit = credit + 7代替credit = '+7'

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

请查看这个SQLFiddle


9

尝试此代码

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

4

试一试这个...

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

1

好的,'+'是一个运算符,因此您需要提供它所需的参数。 '+'运算符是一个二元运算符,因此我们需要向其提供两个参数 语法如下:

 value1+value2

虽然它可以接受许多数据类型的参数,但是通过写入“+7”,您只发送了一个字符串值“+7”,替换了先前的值。

所以最好使用

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

不要将'+'运算符与其他增量运算符混淆。

1
我希望能够通过一个“ON DUPLICATE KEY UPDATE”示例来补充此内容(基于@hims056的答案)。我发现了这个答案,但需要“ON DUP...”,所以我想在这里发布它。
INSERT INTO table1 
(`id`, `credit`)
VALUES (1, 4)
ON DUPLICATE KEY UPDATE
`credit` = `credit` + 7;

在此查看SQL Fiddle


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接