📅  最后修改于: 2023-12-03 15:17:47.595000             🧑  作者: Mango
在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
是你需要保留一条重复行的标志列名。
这个语句实际上是通过子查询来找出需要保留的重复行中最小的那一条,然后删除其它重复的行。
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语句来实现。
以上就是删除除一之外的重复行的两种方法。根据实际需求来选择使用哪种方法。