在數(shù)據(jù)庫表里,我們有時候會保存了很多重復(fù)的數(shù)據(jù),這些重復(fù)的數(shù)據(jù)浪費(fèi)資源,我們要將其刪除掉,應(yīng)該怎么處理呢?下面來看一下。
先看下我們的表數(shù)據(jù),有一些數(shù)據(jù)是重復(fù)的。
![](/d/20211018/9d39ecfd2070b44bf8cfae58f82ef3e4.gif)
要查找重復(fù)數(shù)據(jù),我們可以使用mysql里的having語句,如圖。
![](/d/20211018/263a47bf854b5d4759cd331d6406f488.gif)
執(zhí)行這個語句后,我們可以看到現(xiàn)在的結(jié)果里顯示的就是表中重復(fù)數(shù)據(jù)的字段。
![](/d/20211018/e4926a3365457a91772504530099d2f4.gif)
要刪除這些重復(fù)的數(shù)據(jù),我們找出這些數(shù)據(jù)的ID,在select語句里,添加id字段,使用max函數(shù),可以得到重復(fù)數(shù)據(jù)最后面的id。
![](/d/20211018/ccb3691ed4a16eafe2604f3ccbc08862.gif)
執(zhí)行結(jié)果如圖,得到重復(fù)數(shù)據(jù)的id為8和9。
![](/d/20211018/4dc126a87ff6058c146b2e6fb2bedaca.gif)
這樣我們就可以使用delete語句來刪除這二個id的數(shù)據(jù)了。
![](/d/20211018/86ff337fc9dbb21458a2a4857d204abb.gif)
但如果有很多重復(fù)的數(shù)據(jù),不想一個一個的寫這些id怎么辦?
添加一個子查詢,只把id字段查詢出來,如圖。
![](/d/20211018/f32a6c7653c7ffc1cee530041cb4ce81.gif)
然后在外邊添加一個delete語句就行了,詳細(xì)代碼如圖。
要注意的是,如果重復(fù)數(shù)據(jù)的行有三行或以上的,我們需要執(zhí)行這個語句多次才行,因?yàn)閳?zhí)行一次只會刪除每組重復(fù)數(shù)據(jù)中的一條。
![](/d/20211018/73a418cde00a2690f63a7df7a1399981.gif)
您可能感興趣的文章:- mysql刪除重復(fù)記錄語句的方法
- MySQL中查詢、刪除重復(fù)記錄的方法大全
- mysql查找刪除重復(fù)數(shù)據(jù)并只保留一條實(shí)例詳解
- MySQL 刪除數(shù)據(jù)庫中重復(fù)數(shù)據(jù)方法小結(jié)
- MySQL查詢重復(fù)數(shù)據(jù)(刪除重復(fù)數(shù)據(jù)保留id最小的一條為唯一數(shù)據(jù))
- MySQL數(shù)據(jù)庫中刪除重復(fù)記錄的方法總結(jié)[推薦]
- mysql刪除表中某一字段重復(fù)的記錄
- shell腳本操作mysql數(shù)據(jù)庫刪除重復(fù)的數(shù)據(jù)
- mysql刪除重復(fù)行的實(shí)現(xiàn)方法
- mysql數(shù)據(jù)庫刪除重復(fù)數(shù)據(jù)只保留一條方法實(shí)例