有没有办法从MySQL数据库中删除所有重复行?
答案 0 :(得分:1)
几年前,有人要求删除重复项的方法。子选择使得MySQL 4.1中的查询成为可能:
DELETE FROM some_table WHERE primaryKey NOT IN
(SELECT MIN(primaryKey) FROM some_table GROUP BY some_column)
当然,如果您希望使用重复值而不是具有重复值的最旧记录保留最新记录,也可以使用MAX(primaryKey)
。
要了解其工作原理,请查看此查询的输出:
SELECT some_column, MIN(primaryKey) FROM some_table GROUP BY some_column
如您所见,此查询返回包含some_column的每个值的第一条记录的主键。从逻辑上讲,此结果集中未找到的任何键值必须是重复的,因此应将其删除。
答案 1 :(得分:1)
这些问题/答案可能会让您感兴趣:
当你使用大桌子时经常使用的想法是:
select distinct
)这个原则的好处是你有可能在放弃旧表之前验证新表中的内容 - 总是很好检查那种东西^^