INSERT INTO TABLE (a,c) VALUES (1,3),(1,7) ON DUPLICATE KEY UPDATE c=VALUES(c);
或者
INSERT INTO table (id,a,b,c) select id,a,b,c from xxx ON DUPLICATE KEY UPDATE a=VALUES(a),b=VALUES(b),c=VALUES(c)
上面的mysql的一條語句實現了往表裏插入數據,若是對應的主鍵上(假設主鍵是a)已經有數據了那麼執行更新操做,更新字段c爲新值。mysql
這樣一條語句簡化了咱們的開發代碼,不然開發代碼還要判斷表裏有沒有相應的數據,若是沒有那麼插入數據、若是有那麼執行更新操做。sql
注意:ON DUPLICATE KEY UPDATE只是MySQL的特有語法,並非SQL標準語法!
這個語法和適合用在須要 判斷記錄是否存在,不存在則插入存在則更新的場景.併發
該sql在高併發環境下會有鎖爭用的問題,參考下面連接閱讀高併發