如何解决如何从mysql表中删除部分重复项?
| 我有一个mysql表。如何删除基于三列的部分重复项?是否可以将更改应用于当前表?如果没有解决办法? 例: 当前表 姓.........名...公司名称...职责...第5栏 麦凯恩......克里斯汀......... XYZ ....................... ........ A ................................ A 麦凯恩...............克里斯汀......... XYZ ........................ ..... B ...................... B Morrell ......萨莉.............. ABC .................. ............ A ............................... A Motu .................. Timothy ........ EFG ................................. ........... I ................................ I 结果表: 姓.........名...公司名称...职责...第5栏 麦凯恩......克里斯汀......... XYZ ....................... ........ A ................................ A Morrell ......萨莉.............. ABC .................. ............ A ............................... A Motu .................. Timothy ........ EFG ................................. ........... I ................................ I 如果可能的话,请告诉我一个在堆栈溢出中添加表的简单方法。解决方法
将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,Company);
-- Rename the tables around
RENAME TABLE tableName TO tableName_old;
RENAME TABLE newTable TO tableName;