今天做判斷插入用到了MySQL中ON DUPLICATE KEY UPDATE,現在Mark以下!
如果你想做到數據庫中沒有數據的話插入數據、有數據的話更新數據,那麼你可以選擇ON DUPLICATE KEY UPDATE。
ON DUPLICATE KEY UPDATE能夠在UNIQUE索引或PRIMARY KEY存在的情況下對舊行執行UPDATE操作。
例如:如果列a被定義為UNIQUE,並且包含值1,則以下兩個語句具有相同的效果:
INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c = c + 1,b = b - 1;
UPDATE table SET c = c + 1,b = b - 1 WHERE a = 1;
例如:如果INSERT多行記錄(假設 a 為主鍵或 a 是一個 UNIQUE索引列):
INSERT INTO TABLE (a,c) VALUES (1,3),(1,7) ON DUPLICATE KEY UPDATE c = c + 1;
執行後,c 的值會變為 4 (第二條與第一條重復, c 在原值上+1)。
INSERT INTO TABLE (a,c) VALUES (1,3),(1,7) ON DUPLICATE KEY UPDATE c = VALUES(c);
執行後,c 的值會變為 7 (第二條與第一條重復, c 在直接取重復的值7)。
注意:ON DUPLICATE KEY UPDATE只是MySQL的特有語法,並不是SQL標准語法!