33

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

表名:table

id   credit
1      4
2      5
3      3

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

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

我想把 7 加到 4,这样 credit=11 where id='1'
怎么做?

4

7 回答 7

71
UPDATE table SET credit = credit + 7 WHERE id = 1
于 2012-10-05T08:58:36.600 回答
16

这只是一个简单的UPDATE. 试试下面的。

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

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

于 2012-10-05T08:58:25.113 回答
13

只需使用credit = credit + 7代替credit = '+7'inUPDATE语句

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

看到这个 SQLFiddle

于 2012-10-05T08:58:31.683 回答
9

试试这个代码

UPDATE table SET credit = credit + 7 WHERE id='1' 
于 2012-10-05T08:58:32.117 回答
4

试试这个...

UPDATE table SET credit = credit + 7 WHERE id = 1
于 2012-10-05T09:01:39.267 回答
1

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

 value1+value2

虽然它可能通过写入'+7'来获取许多数据类型的参数,但你只是发送一个字符串值“+7”替换你以前的值

所以你最好使用

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

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

于 2012-10-05T09:30:32.647 回答
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

于 2015-08-28T20:02:38.817 回答