我想從Mysql表中刪除所有重複的行。
但問題是,我不知道哪些行重複。
這個Mysql表包含大約500000行的大數據。
其中一些行重複。
請指導我如何做到這一點。刪除Mysql表中的重複行並只保留一行
UPDATE:
我需要,我在phpMyAdmin運行SQL查詢。
這裏是一個粗略的表格來理解。
假設表名是foo。
+---------------------------------------------------------------------+
| id | link | title | description |
+---------------------------------------------------------------------+
| 1 | google | search engine | search here free |
| 2 | yahoo | also search engine | findout web easily |
| 3 | Facebook| connect with world | meet with world |
| 4 | google | search engine | search here free |
| 5 | msn | Microsoft network | network by MS |
| 6 | google | search engine | search here free |
| 7 | msn | Microsoft network | network by MS |
| 8 | yahoo | also search engine | findout web easily |
| 9 | myweb | my website | ideal website |
|... | .... | .....continue.... | ..... ... ..... |
+---------------------------------------------------------------------+
這是一個粗略的表格,我不能完全定義我的表,因爲它有一輪50多
rows.Hope這個你明白我想要什麼。
我這樣粗略的查詢。
DELECT all duplicate rows FROM foo
編輯
我看到這個questoin被標記爲duplicate.But我認爲這是unique.The鏈接這個你比較它dulpicate.I看到這個鏈接,並存在被標記爲有用的答案對於小型表格,它會對索引進行更改並創建唯一索引。這裏是一個
ALTER IGNORE TABLE jobs ADD UNIQUE INDEX idx_name (site_id, title, company);
代碼如果您運行在此之後該查詢時,無論你增加任何數據Mysql的檢查,如果目前它停下來加入這個它已經存在。
我已經告訴過你,如果使用這個查詢,我的表包含一個大數據,然後我在表格中添加一個結果,它檢查我的整個表格,在這個表格的大約500000行中,這使得它變得很慢。只有一個新的記錄,如果這是10或你的想法是什麼,如果我想輸入100000條新記錄,它會變得太慢。
我看到其他答案大部分都包含HAVING
class.It已經很慢了。
請給我們您的架構信息,以便提供有用查詢你使用。 – idipous
沒有足夠的信息。但如果你谷歌的「SQL刪除重複」,你會發現足夠的自己找出來。 – dkretz
更新了我的回覆,並附上了您添加的表格詳細信息。 – Kickstart