日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

假如現在 MySQL數據庫有幾萬條記錄,由于某些原因導致其中存在一些重復的記錄。那么如何刪除重復記錄只留其中一條呢?

比如,比如存在十條重復的記錄,需要刪除其它九條記錄,只保留一條記錄。

 

數據準備

我們創建如下示例表, Student_Information 表創建 SQL如下 :

如何刪除MySQL數據庫中表的重復記錄且僅保留其中一條?

 

 


我們插入一部分數據到該表,其中存在多條姓名為 Anaa 手機號碼重復數據,如下:

如何刪除MySQL數據庫中表的重復記錄且僅保留其中一條?

 

 


數據入庫后,我們通過 select * from Student_Information 查詢結果如下:

如何刪除MySQL數據庫中表的重復記錄且僅保留其中一條?

 

 


設計SQL

我們通過 Group by對手機號進行分組,然后計算每組最大ID作為保留數據,然后刪除其他數據。SQL設計如下:

如何刪除MySQL數據庫中表的重復記錄且僅保留其中一條?

 

 

執行該SQL,結果如下:

如何刪除MySQL數據庫中表的重復記錄且僅保留其中一條?

 

 

我們可以看到,該 SQL刪除了重復的數據時,并且保留了id最大的數據(最新數據)。


設計該SQL時需要注意什么?

我們需要注意,使用 MySQL 進行 Delete From 操作時,若子查詢的 FROM 子句和刪除或更新對象使用同一張表時,會出現"You can't specify target table for update in FROM clause”。錯誤。

比如,我們設計如下SQL。該 SQL從語法來看也實現刪除 Student_Information 表重復數據,我們執行一下看下結果。

如何刪除MySQL數據庫中表的重復記錄且僅保留其中一條?

 

 

執行結果如下,我們可以看到拋出了"You can't specify target table for update in FROM clause”錯誤,那么該如何解決呢?

如何刪除MySQL數據庫中表的重復記錄且僅保留其中一條?

 

 

解決這個問題的方法也很簡單,就是將 select 出的結果通過中間表再 select 一遍即可,如下:

如何刪除MySQL數據庫中表的重復記錄且僅保留其中一條?

分享到:
標簽:重復 記錄 MySQL
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定