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