mysql 一条sql实现插入或更新 on duplicate key update

表中数据:


执行插入两条主键冲突的数据,如果包含该主键则更新列name:

insert into  t_my (id,`name`) VALUES (2,'bob2'),(3,'bob3') on DUPLICATE KEY UPDATE `name` = VALUES(`name`);


更新之后表数据为:



前提是表有主键或者唯一索引,若有多个索引都冲突,则只根据一个索引更新。

如需根据条件更新则可以使用mysql自带if()函数。


你可能感兴趣的:(mysql)