我有一个包含一些重复记录的表。我想让记录独一无二。我创建了一个新表(例如,目标),并在其中指定了一个唯一的列。如何从 table1(源)复制记录,以便如果该记录插入到目标表中,则不会再次插入。
最佳答案
您可以使用“select into ”构造并选择仅插入不同的行,如下所示:
insert into table_without_dupes (column0, column1) select distinct column0, column1 from table_with_dupes
如果您有自动增量或其他使行不同的列,则可以将它们排除在语句的插入和选择部分之外。
编辑:
如果您想按单列检测重复项,可以使用分组依据:
insert into table_without_dupes (column0, column1) select column0, column1 from table_with_dupes group by column0
MySQL 将允许您在 select 中引用非聚合列,但请记住 documentation说“服务器可以自由地从每个组中选择任何值”,如果您想选择组中的一个特定行,您可能会找到 this示例很有用。
关于mysql - 如何才能不重复地复制表记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11575900/