2011-03-14 153 views
4

我需要爲MySQL編寫SQL查詢,以便行更新(如果存在),但如果不存在則插入。SQL查詢 - 如果存在更新,則插入,否則插入

如果行存在...

UPDATE Table1 SET (...) WHERE Column1='SomeValue' 

如果它不存在...

INSERT INTO Table1 VALUES (...) 

這能在一個查詢做了什麼?

回答

12

我相信你需要扭轉你的邏輯,以便爲它工作:

插入表 - 如果存在(相同的密鑰),然後對其進行更新。

這可以通過ON DUPLICATE語句,像這樣來實現:

INSERT INTO Table1 VALUES(...) 
ON DUPLICATE KEY UPDATE column=column+1 

檢查手冊here

+0

非常巧妙。就是我以後的樣子。謝謝。 – Urbycoz 2011-03-14 09:58:08

+1

太棒了。雖然這篇文章是舊的,但它是超級有用的。你搖滾。 – kmarks2 2012-02-09 20:18:34

7

使用INSERT... ON DUPLICATE KEY UPDATE語法。

參見manual

(對於搜索的目的,順便說一句,這通常被稱爲 「更新插入」)

相關問題