MySQL将不同的值从表复制到。桌子

MySQL将不同的值从表复制到。桌子,mysql,Mysql,我的一个表中包含我想复制到另一个表中的数据编号,但问题是数据不是唯一的—可能有两行或更多行具有我想复制的相同数据—我只需要复制每个编号一次。该表约有300万条记录。有什么有效的方法可以做到这一点吗?您可以使用SELECT DISTINCT仅选择唯一的值 这对你有用吗? 将“值字段”插入目标\u表中,选择与原始\u表不同的“值字段”假设表中有两列a、b INSERT INTO new_table (a, b) SELECT a, b FROM old_table GROUP BY a, b HA

我的一个表中包含我想复制到另一个表中的数据编号,但问题是数据不是唯一的—可能有两行或更多行具有我想复制的相同数据—我只需要复制每个编号一次。该表约有300万条记录。有什么有效的方法可以做到这一点吗?

您可以使用SELECT DISTINCT仅选择唯一的值

这对你有用吗?
将“值字段”插入目标\u表中,选择与原始\u表不同的“值字段”

假设表中有两列a、b

INSERT INTO new_table (a, b) SELECT 
a, b FROM old_table GROUP BY
a, b HAVING COUNT(*) > 1;
您可以使用更多列来扩展它。 这将是一个缓慢的过程,可能永远不会完成巨大的数据

因此,使用

 Insert into new_table select * from old_table;

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

我不能一次选择整个3m记录,并且当我以每100000条这样的限制进行选择时,我很可能会发现重复。例如,第一个和第四个选择您正在复制的第二个表是否已经包含一些数据?您想忽略第一个表中的数字,它们已经存在于第二个表中?
 Insert into new_table select * from old_table;