本篇文章转载自: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)。