MySQL寫入有則更新、有則替換、有則忽略
MySQL寫入有則更新、有則替換、有則忽略前言 開放中經(jīng)常遇到的一個(gè)場(chǎng)景,先判斷某條數(shù)據(jù)是否存在,不存在則寫入一條記錄,存在就更新某些字段,咋整?難不成寫兩條SQL?sql早就想到了,其實(shí)一條語句就可以完成。 MySQL 有則更新1INSERT INTO test(a,b,c)
MySQL寫入有則更新、有則替換、有則忽略前言 開放中經(jīng)常遇到的一個(gè)場(chǎng)景,先判斷某條數(shù)據(jù)是否存在,不存在則寫入一條記錄,存在就更新某些字段,咋整?難不成寫兩條SQL?sql早就想到了,其實(shí)一條語句就可以完成。 MySQL 有則更新1INSERT INTO test(a,b,c)
開放中經(jīng)常遇到的一個(gè)場(chǎng)景,先判斷某條數(shù)據(jù)是否存在,不存在則寫入一條記錄,存在就更新某些字段,咋整?難不成寫兩條SQL?sql早就想到了,其實(shí)一條語句就可以完成。
1 | INSERT INTO test(a,b,c) VALUES(1,2,3) ON DUPLICATE KEY UPDATE a=1,c=3; |
解釋:向表test中寫入1,2,3,存在鍵沖突則執(zhí)行更新操作。
1 | REPLACE INTO test(a,b,c) VALUES(1,2,3) |
解釋:向表test寫入1,2,3,存在鍵沖突則執(zhí)行替換操作
注意:次操作會(huì)首先刪除沖突的行再執(zhí)行插入操作,所以受影響行數(shù)是2
1 | INSERT IGNORE INTO test(a,b,c) VALUES(1,2,3) |
解釋:向表test寫入1,2,3,存在鍵沖突則直接忽略不進(jìn)行寫入。
版權(quán)所有:深圳市網(wǎng)商在線科技有限公司
友情鏈接: