我想在一个唯一的查询中做这样的事情。
REPLACE INTO table ( id, number ) VALUES ( 'test', number=number+5 )
我想要的是(第一次!)插入行并设置数字5。 其他时间(如果已经存在)在数字上加5。
有可能吗?我在网上找不到任何东西。
答案 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)