我想从 Mysql 表中删除所有重复的行。
但问题是我不知道哪些行是重复的。
这个 Mysql 表包含大约 500000 行的大数据。
其中一些行是重复的。
请指导我如何做到这一点。
更新:
我需要在 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.... | ..... ... ..... |
+---------------------------------------------------------------------+
这是一张粗略的表,我无法完全定义我的表,因为它大约有 500000
行。希望这能理解你我想要什么。
我这样粗略查询。
DELECT all duplicate rows FROM foo
编辑
我看到这个 questoin 被标记为重复。但我认为它是唯一的。与这个链接你比较它是重复的。我看到这个链接并且有一个答案标记为对小尺寸表有用它会更改索引并制作唯一索引。这是那个的代码
ALTER IGNORE TABLE jobs ADD UNIQUE INDEX idx_name (site_id, title, company );
如果您在添加任何数据时运行此查询,Mysql 检查它是否已经存在或不存在,如果存在它会停止添加。
我已经告诉过您,如果使用此查询,我的表包含大量数据,然后我在表中添加一个结果,它会检查我的整个表,其中大约 500000 行使其唯一,这使它变慢。它只有一个如果这是 10 条新记录,或者如果我想输入 100000 条新记录,你的想法是什么,它太慢了。
而且我看到其他答案中的大多数都包含类HAVING
。它已经很慢了。