MySQL写入有则更新、有则替换、有则忽略
MySQL写入有则更新、有则替换、有则忽略前言 开放中经常遇到的一个场景,先判断某条数据是否存在,不存在则写入一条记录,存在就更新某些字段,咋整?难不成写两条SQL?sql早就想到了,其实一条语句就可以完成。 MySQL 有则更新1INSERT INTO test(a,b,c)
开放中经常遇到的一个场景,先判断某条数据是否存在,不存在则写入一条记录,存在就更新某些字段,咋整?难不成写两条SQL?sql早就想到了,其实一条语句就可以完成。
1 | INSERT INTO test(a,b,c) VALUES(1,2,3) ON DUPLICATE KEY UPDATE a=1,c=3; |
解释:向表test中写入1,2,3,存在键冲突则执行更新操作。
1 | REPLACE INTO test(a,b,c) VALUES(1,2,3) |
解释:向表test写入1,2,3,存在键冲突则执行替换操作
注意:次操作会首先删除冲突的行再执行插入操作,所以受影响行数是2
1 | INSERT IGNORE INTO test(a,b,c) VALUES(1,2,3) |
解释:向表test写入1,2,3,存在键冲突则直接忽略不进行写入。
版权所有:深圳市网商在线科技有限公司
友情链接: