【发布时间】:2012-10-20 00:43:09
【问题描述】:
我想在一个查询中做这样的事情。
REPLACE INTO table ( id, number ) VALUES ( 'test', number=number+5 )
我想要的是(第一次!)插入行并设置数字 5。 其他时间(如果已经存在)在数字上加 5。
有可能吗?我在网上找不到任何东西。
【问题讨论】:
我想在一个查询中做这样的事情。
REPLACE INTO table ( id, number ) VALUES ( 'test', number=number+5 )
我想要的是(第一次!)插入行并设置数字 5。 其他时间(如果已经存在)在数字上加 5。
有可能吗?我在网上找不到任何东西。
【问题讨论】:
请确保 ID 是唯一的。使用 INSERT ... ON DUPLICATE KEY UPDATE 语法
INSERT INTO tableName (id, number)
VALUES ('test', 5)
ON DUPLICATE KEY UPDATE
number = number + 5
【讨论】:
假设id 是正确的键(例如主键):
INSERT INTO `table` (id, number)
VALUES ('test', 5)
ON DUPLICATE KEY UPDATE number=number+VALUES(number)
【讨论】: