用唯一主键批量更新数据(ON DUPLICATE KEY UPDATE)

今天学习到了一种利用唯一主键批量更新sql的方法:

INSERT INTO a ( id,name,age ) values (1,’andy’,12), (2,’lili’,13), (3,’lucy’,14) ON DUPLICATE KEY UPDATE name=VALUES(name), age=VALUES(age);

如果a表的id是唯一主键,而且values里边的值都是要更新的,那么这条语句就会等价于

UPDATE a SET name=’andy’, age=12 WHERE id=1;

UPDATE a SET name=’lili’, age=13 WHERE id=2;

UPDATE a SET name=’lucy’, age=14 WHERE id=3;