生活随笔
收集整理的這篇文章主要介紹了
MySQL 中删除重复数据只保留一条
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
WechatIMG256.jpeg
場(chǎng)景 在許多條記錄里,存在著些相同的記錄,使用SQL語(yǔ)句,刪除掉重復(fù)項(xiàng)只保留一條。
數(shù)據(jù)模型 idnameweaponskill 1 永遠(yuǎn) 菊十文字 蒼龍破 2 諸葉 弓箭 蒼穹箭雨 3 諸葉 俱利伽羅丸 紅龍破 4 剎那 兼光之巴 旋風(fēng)陣 5 剎那 兼光之巴 宿蛾之月
單字段示例 SELECTid,name
FROMhalf_demon
WHEREname IN ( SELECT name FROM half_demon GROUP BY name HAVING count( name ) > 1 )
查找表中多余的重復(fù)記錄,重復(fù)記錄是根據(jù)單個(gè)字段name來(lái)判斷。
idnameweaponskill 2 諸葉 弓箭 蒼穹箭雨 3 諸葉 俱利伽羅丸 紅龍破 4 剎那 兼光之巴 旋風(fēng)陣 5 剎那 兼光之巴 宿蛾之月
DELETE
FROMhalf_demon
WHEREid NOT IN ( SELECT hd.minid FROM ( SELECT MIN( id ) AS minid FROM half_demon GROUP BY name ) hd )
刪除表中多余的重復(fù)記錄,重復(fù)記錄是根據(jù)單個(gè)字段name來(lái)判斷,只留有id最小的記錄。
idnameweaponskill 1 永遠(yuǎn) 菊十文字 蒼龍破 2 諸葉 弓箭 蒼穹箭雨 4 剎那 兼光之巴 旋風(fēng)陣
多字段示例 SELECTid,name,weapon
FROMhalf_demon a
WHERE( a.name, a.weapon ) IN ( SELECT name, weapon FROM half_demon GROUP BY name, weapon HAVING count( * ) > 1 )
查找表中多余的重復(fù)記錄,重復(fù)記錄是根據(jù)多個(gè)字段name、weapon來(lái)判斷。
idnameweaponskill 4 剎那 兼光之巴 旋風(fēng)陣 5 剎那 兼光之巴 宿蛾之月
DELETE
FROMhalf_demon
WHERE( name, weapon ) IN (
SELECTt.name,t.weapon
FROM( SELECT name, weapon FROM half_demon GROUP BY name, weapon HAVING count( 1 ) > 1 ) t ) AND id NOT IN ( SELECT hd.minid FROM ( SELECT min( id ) AS minid FROM half_demon GROUP BY name, weapon HAVING count( 1 ) > 1 ) hd )
刪除表中多余的重復(fù)記錄,重復(fù)記錄是根據(jù)多個(gè)字段name、weapon來(lái)判斷,只留有id最小的記錄。
idnameweaponskill 1 永遠(yuǎn) 菊十文字 蒼龍破 2 諸葉 弓箭 蒼穹箭雨 3 諸葉 俱利伽羅丸 紅龍破 4 剎那 兼光之巴 旋風(fēng)陣
總結(jié)
以上是生活随笔 為你收集整理的MySQL 中删除重复数据只保留一条 的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔 網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔 推薦給好友。