mySQL找到重复并删除它们
我想知道是否有办法通过一个查询来实现这一点 似乎当我最初用虚拟数据填充数据库以处理10k记录时,在混乱的地方,所有脚本都额外填充了1044行,其中的行是重复的。我使用mySQL找到重复并删除它们,mysql,Mysql,我想知道是否有办法通过一个查询来实现这一点 似乎当我最初用虚拟数据填充数据库以处理10k记录时,在混乱的地方,所有脚本都额外填充了1044行,其中的行是重复的。我使用 SELECT x.ID, x.firstname FROM info x INNER JOIN (SELECT ID FROM info GROUP BY ID HAVING count(id) > 1) d ON x.ID = d.ID 我想弄明白的是,通过这个单一的查询,我是否可以向其中添加另一个片段,从找到的每个重复
SELECT x.ID, x.firstname FROM info x
INNER JOIN (SELECT ID FROM info
GROUP BY ID HAVING count(id) > 1) d ON x.ID = d.ID
我想弄明白的是,通过这个单一的查询,我是否可以向其中添加另一个片段,从找到的每个重复中删除一个匹配的重复
我还意识到ID列应该设置为自动递增,但它不是,最有效的方法是按以下步骤执行: 步骤1:将非重复(唯一元组)移动到临时表中
CREATE TABLE new_table as
SELECT * FROM old_table WHERE 1 GROUP BY [column to remove duplicates by];
第2步:删除旧表。我们不再需要包含所有重复项的表,所以请删除它
DROP TABLE old_table;
步骤3:将新的\u表重命名为旧的\u表的名称
RENAME TABLE new_table TO old_table;
最有效的方法是按以下步骤进行: 步骤1:将非重复(唯一元组)移动到临时表中
CREATE TABLE new_table as
SELECT * FROM old_table WHERE 1 GROUP BY [column to remove duplicates by];
第2步:删除旧表。我们不再需要包含所有重复项的表,所以请删除它
DROP TABLE old_table;
步骤3:将新的\u表重命名为旧的\u表的名称
RENAME TABLE new_table TO old_table;
我最喜欢的删除重复项的方法是:
ALTER IGNORE TABLE info ADD UNIQUE (ID);
进一步解释(参考,看一看)
UNIQUE-您正在向ID列添加唯一索引
忽略-是标准SQL的MySQL扩展。如果新表中的唯一键上存在重复项,或者启用严格模式时出现警告,则控制ALTER TABLE的工作方式。如果未指定IGNORE,则在出现重复密钥错误时中止复制并回滚。如果指定了IGNORE,则只有第一行用于唯一键上具有重复项的行。其他冲突行将被删除。不正确的值被截断为最接近的匹配可接受值。我最喜欢的删除重复项的方法是:
ALTER IGNORE TABLE info ADD UNIQUE (ID);
进一步解释(参考,看一看)
UNIQUE-您正在向ID列添加唯一索引
忽略-是标准SQL的MySQL扩展。如果新表中的唯一键上存在重复项,或者启用严格模式时出现警告,则控制ALTER TABLE的工作方式。如果未指定IGNORE,则在出现重复密钥错误时中止复制并回滚。如果指定了IGNORE,则只有第一行用于唯一键上具有重复项的行。其他冲突行将被删除。不正确的值被截断为最接近的匹配可接受值。我使用的查询通常类似于
Delete from table where id in (
Select Max(id) from table
Group by (DUPFIELD)
Having count (*)>1)
您必须多次运行该查询,因为它一次只删除一个重复的行,但速度很快。我使用的查询通常类似于
Delete from table where id in (
Select Max(id) from table
Group by (DUPFIELD)
Having count (*)>1)
由于一次只能删除一个重复的行,因此您必须多次运行此操作,但速度很快。可能重复的可能重复的可能重复的可能重复的您希望非常小心,不要同时删除两个重复的行。DUP还有什么与众不同的地方吗?您是否有任何唯一的字段(如自动增量列)可用于隔离它们?只有在其中一些字段上有不同的其他值,其中一些字段似乎是完全重复的。您可能希望非常小心,不要同时删除这两个字段。DUP还有什么与众不同的地方吗?你有没有什么独特的字段,比如自动增量列,可以用来隔离它们?只有在其中一些字段上有不同的其他值,有些字段看起来是完全重复的。你能进一步解释一下这是怎么回事吗,最后,我不想删除或更改任何内容,直到我确信桌子上的东西都很好。你能进一步解释一下这是怎么回事吗?最后,我不想删除或更改任何内容,直到我确信桌子上的东西都很好