开放中经常遇【yù】到的一【yī】个场景,先判断某条数据是否存在,不存在则写入【rù】一【yī】条记录【lù】,存在就更新某些字【zì】段,咋整?难不成写两【liǎng】条SQL?sql早【zǎo】就想到了【le】,其实一条语【yǔ】句就可以【yǐ】完【wán】成【chéng】。
1 | INSERT INTO test(a,b,c) VALUES(1,2,3) ON DUPLICATE KEY UPDATE a=1,c=3; |
解释:向表【biǎo】test中写【xiě】入1,2,3,存在【zài】键冲突则执行更新【xīn】操作。
1 | REPLACE INTO test(a,b,c) VALUES(1,2,3) |
解释:向表test写入1,2,3,存在键冲突则执行替换操作
注意【yì】:次【cì】操作【zuò】会首先删除【chú】冲突的行再执行插入操作,所以受影响【xiǎng】行【háng】数是2
1 | INSERT IGNORE INTO test(a,b,c) VALUES(1,2,3) |
解释:向表【biǎo】test写入1,2,3,存【cún】在键冲突则直接忽略【luè】不进【jìn】行写【xiě】入。
版权所有:深圳市网商在线科技有限公司
友情链接: