本篇文章轉載自:https://www.cnblogs.com/Eric-zhao/p/6655994.html
mysql語法支持如果數據存在則更新,不存在則插入,首先判斷數據存在還是不存在的那個字段要設置成unique索引,
例如表tb_addrbook如下:
索引:
語句1:不存在插入
INSERT INTO tb_addrbook(num,name,mobile) VALUE('1001','小李','13112345678') ON DUPLICATE KEY UPDATE name= '小李',mobile='13112345678'
語句2:存在則更新
INSERT INTO tb_addrbook(num,name,mobile) VALUE('1001','小李','18800000000') ON DUPLICATE KEY UPDATE name= '小李',mobile='18800000000'
總結:由於num是unique索引 ,所以當數據重復時,插入會報錯,從而執行后面的update語句,update的條件就是此unique索引的值(update XXX where num = XXX)。