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

mysql數(shù)據(jù)查詢分組,MySQL數(shù)據(jù)庫如何刪除重復(fù)數(shù)據(jù)

錢斌斌2年前22瀏覽0評論
mysql數(shù)據(jù)查詢分組,MySQL數(shù)據(jù)庫如何刪除重復(fù)數(shù)據(jù)?

樓主的問題是如何刪除重復(fù)數(shù)據(jù)僅保留其中一條,接下來就介紹一下如何實(shí)現(xiàn)該需求。

數(shù)據(jù)準(zhǔn)備

示例表 Student_Information 如下 :

我們插入一部分?jǐn)?shù)據(jù)到該表,其中存在多條姓名為 Anaa 的手機(jī)號碼重復(fù)數(shù)據(jù),如下:

入庫后數(shù)據(jù)如下:

設(shè)計刪除SQL

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

執(zhí)行該SQL,結(jié)果如下:

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

設(shè)計該SQL時需要注意什么?

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

比如,我們設(shè)計如下SQL,該SQL從語法來看也是實(shí)現(xiàn)刪除 Student_Information 表重復(fù)數(shù)據(jù),我們執(zhí)行一下看下結(jié)果。

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

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