📜  mysql 删除除一之外的重复行 - SQL (1)

📅  最后修改于: 2023-12-03 15:17:47.595000             🧑  作者: Mango

MySQL 删除除一之外的重复行

在MySQL中,我们可以使用DISTINCT来删除重复的行。但有时候我们只想保留重复行中的一条,而将其它重复行删除。那么该怎么做呢?本文将介绍如何使用MySQL删除除一之外的重复行。

方法一:使用子查询
DELETE FROM table_name WHERE column_name NOT IN (SELECT MIN(column_name) FROM table_name GROUP BY duplicate_column);

这个方法中,table_name是你需要操作的表名,column_name是你需要去除重复的列名,duplicate_column是你需要保留一条重复行的标志列名。

这个语句实际上是通过子查询来找出需要保留的重复行中最小的那一条,然后删除其它重复的行。

方法二:使用JOIN语句
DELETE t1 FROM table_name t1 JOIN table_name t2 WHERE t1.column_name > t2.column_name AND t1.duplicate_column = t2.duplicate_column;

这个方法跟方法一相似,也是通过找出需要保留的重复行中最小的那一条,然后删除其它重复的行。不同的是,这里使用了JOIN语句来实现。

总结

以上就是删除除一之外的重复行的两种方法。根据实际需求来选择使用哪种方法。