|
問題:一個(gè)表有自增的ID列,表中有一些記錄內(nèi)容重復(fù),也就是說這些記錄除了ID不同之外,其他的信息都相同。需要把重復(fù)的記錄保留一條,剩下的刪除。
這種需求一般開發(fā)人員都會,我這里寫出兩個(gè)版本。
版本一:由于記錄有自增列,所以自增列可以做為記錄的唯一標(biāo)識,由此可見,重復(fù)的記錄的自增ID是一個(gè)遞增關(guān)系,這里我們可以只保留ID最小的那條記錄,其它的全部刪除。利用一個(gè)嵌套語句就非常容易寫出下面的SQL。其中的sname,saddress是記錄除了ID外的所有列。
DELETE FROM aWHERE id NOT IN ( SELECT MIN(id)
FROM a
GROUP BY sname,
saddress )
it知識庫:利用SQL05特性刪除表中重復(fù)數(shù)據(jù),轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。