在PHPMYAdmin中,我正在運行一個Web爬蟲。網絡爬蟲偶爾會拿起相同的網址。在網絡爬蟲,它已經索引了成千上萬的鏈接,我不想重複的鏈接。有沒有辦法在SQL中刪除類似的行(唯一的區別是id字段)在MYSQL中刪除非常非常相似的行
回答
如果你的表名爲the_table
及其字段是id
(一個獨特的領域)和url
,那麼你可以這樣寫:
DELETE
FROM the_table
WHERE id NOT IN
(SELECT *
FROM (SELECT MIN(id)
FROM the_table
GROUP BY url
) t
)
;
(如果您有其他領域的歡迎,並只希望刪除其中所有領域是相同的,除了id
,然後只需添加這些字段的GROUP BY
條款連同url
行。)
只是FYI,您不能在DELETE操作中的子查詢中引用同一個表。它會拋出這個錯誤:'#1093 - 你無法在FROM子句中指定目標表'the_table'進行更新。 – 2012-08-16 18:42:39
@ZaneBien:哦,我忘了那件事。破解MySQL。現在修好了,謝謝。 :-) – ruakh 2012-08-16 18:52:10
不會做我要求的,我要求刪除重複的數據什麼不是ID標籤的一部分 – 2012-08-16 18:57:01
您可以DELETE
除了具有最大ID(最近)的所有URL:
DELETE a
FROM tbl a
LEFT JOIN (
SELECT MAX(id) AS id
FROM tbl
GROUP BY url
) b ON a.id = b.id
WHERE b.id IS NULL
完成這一步之後,它可能是建立在URL字段的唯一約束是一個好主意:
ALTER TABLE tbl ADD UNIQUE idx_unique_url (url);
- 1. 刪除非常慢
- 2. 刪除/刪除核心數據中的記錄非常非常慢
- 3. Random.nextInt()產生非常相似的數字?
- 4. 如何在類似行中刪除具有非常特定標準的相似行?
- 5. 在非常深的樹上刪除
- 6. 非常慢的mysql
- 7. MySQL的PHP的查詢有時非常快ANSD有時非常非常慢
- 8. 刪除sql查詢非常慢
- 9. 數據庫表刪除後非常慢
- 10. 在MySQL中非常緩慢的查詢
- 11. WAMP上的MySQL非常慢
- 12. MySQL - 非常複雜的隨機行
- 13. 非常非常非常簡單的電子郵件選項
- 14. 帶SMTP的CodeIgniter非常非常非常慢
- 15. MATLAB:非常小的數字除以非常小的數字
- 16. 複雜(或非常非常簡單)的MySQL查詢?
- 17. 非常非常慢的Excel宏
- 18. 非常非常簡單的MVVM問題
- 19. 非常非常難的查詢
- 20. C#HtmlAgilityPack相對節點選擇。 Xpath是非常,非常淘氣
- 21. MySQL查詢運行非常緩慢
- 22. MySQL InnoDB插入非常慢
- 23. MySQL訂購非常慢
- 24. Zend Framework和Mysql - 非常慢
- 25. SED或grep的或AWK匹配非常非常長的行
- 26. 內容似乎是非常低的resoultion
- 27. 斯卡拉非常類似的表述
- 28. 在Java中創建一個非常非常大的地圖
- 29. 合併2 Django(非常相似)urlconfs在一個
- 30. Netbeans 8和xdebug非常非常慢
'id'字段是自動遞增的INT字段嗎? – 2012-08-16 18:34:28
是的,它是一個自動遞增的字段 – 2012-08-16 18:38:49