欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql 查詢重復(fù),Mysql如何去掉數(shù)據(jù)庫中的重復(fù)記錄

黃文隆2年前47瀏覽0評論
mysql 查詢重復(fù),Mysql如何去掉數(shù)據(jù)庫中的重復(fù)記錄?

從mysql數(shù)據(jù)庫刪除重復(fù)記錄只保留其中一條

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

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

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

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

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)

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

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

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

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)

再運行試試

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

可以戳原文看看:https://www.cnblogs.com/jdbeyond/p/8157224.html