MySql:REPLACE INTO,数字=数字+ 1

时间:2012-10-30 16:01:31

标签: mysql sql replace add

我想在一个唯一的查询中做这样的事情。

REPLACE INTO table ( id, number ) VALUES ( 'test', number=number+5 )

我想要的是(第一次!)插入行并设置数字5。 其他时间(如果已经存在)在数字上加5。

有可能吗?我在网上找不到任何东西。

2 个答案:

答案 0 :(得分:5)

确保ID是唯一的。使用 INSERT ... ON DUPLICATE KEY UPDATE 语法

INSERT INTO tableName (id, number)
VALUES ('test', 5)
ON DUPLICATE KEY UPDATE
number = number + 5

答案 1 :(得分:1)

假设id是正确的密钥(例如主键):

INSERT INTO `table` (id, number)
VALUES ('test', 5)
ON DUPLICATE KEY UPDATE number=number+VALUES(number)