2012-10-30 56 views
3

我想在一個唯一的查詢中做這樣的事情。MySql:REPLACE INTO with number = number + 1

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

我要的是(第一次!)插入該行並設置數字5 其他時間(如果存在的話)的數量加5。

可能嗎?我在網上找不到任何東西。

回答

5

只要確保ID是唯一的。使用INSERT ... ON DUPLICATE KEY UPDATE語法

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

假設id是正確的鑰匙(例如主鍵):

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