MYSQL中ON DUPLICATE KEYUPDATE使用条件更新

tech2026-02-20  11

当做批量插入,遇到主键冲突同时需要根据部分条件更新数据时,可使用IF语句

例如user表有以下字段:

id_card, name, age, status

id_card为主键

我们要做批量插入,主键冲突当status字段为1的时候,则更新name和age字段的值,否则保持原数据,sql如下

INSERT INTO user(id_card, name, age) values(:id_card, :name, :age) ON DUPLICATE KEY  UPDATE name=IF(status=1, VALUES(name), name), age=IF(status=1, VALUES(age), age)

最新回复(0)