国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

Mysql如何去掉數據庫中的重復記錄?

網友解答: 從mysql數據庫刪除重復記錄只保留其中一條這兩天做了一個調用第三方接口的小程序,因為是實時更新數據,所以請求接口的頻率就很高,這樣有時會出現(xiàn)往數據庫插入重復的數據,對數據庫

網友解答:

從mysql數據庫刪除重復記錄只保留其中一條

這兩天做了一個調用第三方接口的小程序,因為是實時更新數據,所以請求接口的頻率就很高,這樣有時會出現(xiàn)往數據庫插入重復的數據,對數據庫造成壓力也不方便管理,因為要通過原生sql語句,解決數據庫的去重問題.在過程中遇到了麻煩,最終解決了分享出來。

要刪除重復的記錄,就要先查出重復的記錄,這個很容易做到

select * from cqssc group by expect having count(expect) 1

注意:這是查出所有重復記錄的第一條記錄,需要保留,因此需要添加查詢條件,查出這三條的重復記錄

select id,expect from cqssc where expect in (select expect from cqssc group by expect having count(expect)1)

and id not in(select min(id) from cqssc group by expect having count(expect)1)

以上得到的結果就是我們需要刪除的記錄!

下面是我最初做錯的地方,既然要刪除,可能都會想到這樣很簡單了

報錯了!??!在Mysql中是不能刪除查詢出來的記錄的,這里很容易錯,當時在這里糾結了很久,而是要通過一張臨時表來解決。

delete from cqssc where id in (select id from (select id from cqssc where expect in

(select expect from cqssc group by expect having count(expect)1) and id not in

(select min(id) from cqssc group by expect having count(expect)1)) as tmpresult)

再運行試試

刪除成功,最后再查詢一下看是否還有重復記錄

標簽: