首页 > 解决方案 > MySQL 将不同的值从表复制到。桌子

问题描述

我的一个表包含我想复制到其他表的数据(数字),但问题是数据不是唯一的,可以有 2 行或更多行包含我想复制的相同数据(我只需要复制每个数字一次)。表大约有 300 万条记录。有什么有效的方法可以做到这一点吗?

标签: mysql

解决方案


假设您的表中有两列 a、b

INSERT INTO new_table (a, b) SELECT 
a, b FROM old_table GROUP BY
a, b HAVING COUNT(*) > 1;

你可以用更多的列来扩展它。这将是一个缓慢的过程,并且可能永远无法完成大量数据。

因此,改为使用将所有值复制到 new_table

 Insert into new_table select * from old_table;

然后从新表中删除重复记录。这可以相对更快并且有保证的完成。


推荐阅读