關(guān)于數(shù)據(jù)庫(kù)去除重復(fù)數(shù)據(jù)已經(jīng)是一個(gè)老問(wèn)題了,甚至面試也會(huì)經(jīng)常被問(wèn)到這部分的問(wèn)題。
最老的方法就是建立中間表了,由于我對(duì)數(shù)據(jù)庫(kù)不是很熟悉,沒(méi)有深入研究過(guò),所以也不能一一列舉方法。
目前想記錄的一個(gè)東西是最近我爬取數(shù)據(jù)的時(shí)候,有大概幾萬(wàn)條數(shù)據(jù),但是重復(fù)率很高的情況,可以利用distinct等去篩選出來(lái),但是假設(shè)我不想寫代碼,從數(shù)據(jù)庫(kù)層面去操作的話,用distinct沒(méi)辦法配合delete操作,而且我懶,不愿意去建立中間表這些。
在翻找資料的過(guò)程中,終于找到了一種方法,如下:
DELETE
FROM
table_name
WHERE
id NOT IN (
select * from(
SELECT
min(id) AS id
FROM
table_name
GROUP BY
field)b
)
但是這種去重效率并不高。