mysql - 如何才能不重复地复制表记录?

标签 mysql

我有一个包含一些重复记录的表。我想让记录独一无二。我创建了一个新表(例如,目标),并在其中指定了一个唯一的列。如何从 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/

相关文章:

php - SQL Select 对多列进行计数并排序

PHPExcel 未插入 MySQL 数据库

php - SQLSTATE[HY000] : General error

php - 修复 WordPress 自定义菜单字符编码

c++ - 直接将选定的图像传递给另一个函数

php - 安卓/PHP : Display “Data successfully save” after save input data from android to MySQL

mysql - 我的过滤日期语法有什么问题

mysql - sql设置类型匹配

mysql - 从 mysql 表中按组限制选择行

php - 在表单中发布数组值时未获取数组值