Mysql 存在即更新語法

當我們在處理資料庫資料的時候,有時候會碰到一種情況

就是當沒有這筆資料時,我們就insert進去

而這筆資料已經存在時,我們就更新相關的欄位

當然用程式先做select這筆資料的key是否存在,在判斷insert還是update也是可以

但是實際上量大的時候,其實是相當的消耗效能的

實際上Mysql本身有提供一個命令可以一次處理完

INSERT INTO `table` (`key`,`data1`, `data2`,) VALUES (‘key’,’data1′,’data2′) ON DUPLICATE KEY UPDATE data1= ‘xxx’, data2=’yyy’

也就是在insert後面加上ON DUPLICATE KEY UPDATE

然後接上我們要更新的資料欄位即可

這樣如果碰到主鍵(key)已經存在的資料,就不會再insert,會直接更新data1以及data2

如果主鍵不存在,就會直接insert