mysql - 如何从 mysql 表中删除部分重复项?

标签 mysql

我有一个 mysql 表。如何删除基于三列的部分重复项?是否可以将更改应用于当前表?如果不是,解决方案是什么?

例子:
当前表
姓氏…………名字…………公司名称…………职责…………Column5 麦凯恩…………克里斯汀…………XYZ………… ......................................................A
麦凯恩………………克里斯汀…………XYZ………… .....B ..................... B
莫雷尔…………莎莉………………………… .....................................................
Motu ................Timothy ............ EFG ..................... …………我………………………………………………………………………………………………………………

结果表:

姓氏…………名字…………公司名称…………职责…………Column5 麦凯恩…………克里斯汀…………XYZ………… ......................................................A
莫雷尔…………莎莉………………………… .....................................................
Motu ................Timothy ............ EFG ..................... …………我………………………………………………………………………………………………………………

如果可能的话请告诉我一个在堆栈溢出中添加表格的简单方法..

最佳答案

tableName 替换为您的表名,并将 GROUP BY/UNIQUE INDEX 字段 替换为您希望唯一的字段。

警告:使用的 GROUP BY 在删除重复项时只会选择第一个条目。

如果出现问题,您在 tableName_old 中仍有原始数据的副本。

-- Create a new table that's filtered
CREATE TABLE newTable
    (SELECT * 
    FROM tableName
    GROUP BY LastName, FirstName, Company);

-- Add a unique index of the fields you want
ALTER TABLE newTable ADD UNIQUE INDEX ix_unique (LastName, FirstName, Company);

-- Rename the tables around
RENAME TABLE tableName TO tableName_old;
RENAME TABLE newTable TO tableName;

关于mysql - 如何从 mysql 表中删除部分重复项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5852291/

相关文章:

MySQL,获取最后创建的表名

php - 检查可用房间的参数为房间类型、开始日期和结束日期

php - 将数据插入数据库不起作用

MySQL: super 慢的 SQL

android - MySQL 数据库连接

php - 将 MySQL 表保存到本地计算机

php - 根据所选行更新表单提交

php - 无法从 USB 创建数据库转储

php - 写入多维数组的位置

javascript - 如何在外部文件中创建选择菜单并将其嵌入到 html 中以显示菜单