tft每日頭條

 > 科技

 > mysql如何去除表中重複數據

mysql如何去除表中重複數據

科技 更新时间:2024-12-18 22:24:57

mysql如何去除表中重複數據(如何删除MySQL數據庫中表的重複記錄且僅保留其中一條)1

假如現在 MySQL數據庫有幾萬條記錄,由于某些原因導緻其中存在一些重複的記錄。那麼如何删除重複記錄隻留其中一條呢?

比如,比如存在十條重複的記錄,需要删除其它九條記錄,隻保留一條記錄。數據準備

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

mysql如何去除表中重複數據(如何删除MySQL數據庫中表的重複記錄且僅保留其中一條)2


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

mysql如何去除表中重複數據(如何删除MySQL數據庫中表的重複記錄且僅保留其中一條)3


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

mysql如何去除表中重複數據(如何删除MySQL數據庫中表的重複記錄且僅保留其中一條)4


設計SQL

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

mysql如何去除表中重複數據(如何删除MySQL數據庫中表的重複記錄且僅保留其中一條)5

執行該SQL,結果如下:

mysql如何去除表中重複數據(如何删除MySQL數據庫中表的重複記錄且僅保留其中一條)6

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


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

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

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

mysql如何去除表中重複數據(如何删除MySQL數據庫中表的重複記錄且僅保留其中一條)7

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

mysql如何去除表中重複數據(如何删除MySQL數據庫中表的重複記錄且僅保留其中一條)8

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

mysql如何去除表中重複數據(如何删除MySQL數據庫中表的重複記錄且僅保留其中一條)5


,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved