一句重複資料刪除資料行

來源:互聯網
上載者:User

最近有個項目需要從網上抓資料,有重複資料在所難免,就想把重複資料刪掉,只留一條有用的。

各論壇、各部落格、各知名網站找個遍,竟然沒有找到我想要的方法。(我這人比較懶,又喜歡簡單的東西,所以一直想找一個一條SQL語句就能搞定的方法。)

沒辦法,只能自己搞了。就又去w3cschool重新深造了。(w3cschool可是個好地方!別笑我,理論的東西和能在字典中查到的東西,我從來不刻意去學。)

要麼說懶人有懶法呢,真讓我搞出來了。自己看吧。

DELETE FROM tablename WHERE id IN( SELECT MAX(id) FROM tablename GROUP BY fieldname HAVING COUNT(0)>1 )

我解釋一下:

首先這裡的id視為主鍵。

子查詢是把資料分了個組GROUP BY,過慮了一下只要有重複的資料COUNT(0)>1。

返回的結果是個集合,是每組中最大的一個主鍵MAX(id)。

主句就是一個刪除語句,沒什麼特別,條件是IN型過慮。

沒錯,高手們已經看出來了。這隻能重複資料刪除資料中的一條資料。

前面說了,我這個人懶,勤快的人可以把他放到T-SQL迴圈中,用子查詢做為條件就行了。反正我這資料量不是很大,這就足夠了。

注意,重要的不是原創,是分享。網上的用暫存資料表、用標記等等都弱爆了,但不鄙視,共同學習,共同學習。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.