编写一个 SQL 查询,来删除 Person 表中所有重复的电话,重复的电话里只保留 Id 最小 的那个。

例如,在运行你的查询语句之后,上面的 Person 表应返回以下几行:

解法一:分组找出最小的id,然后用not in()排除,剩下的都是可以删的
Delete from person where id not in
(select p1.id from (select min(id) as id from person group by tel ) as p1)
解法二:两表相联,需要指定删哪张,所以p1要加在delete后面
DELETE p1 from person p1,person p2 where p1.tel=p2.tel and p1.id > p2.id;
本文提供两种SQL查询方法,用于删除Person表中的重复电话记录,仅保留最小ID的记录。第一种方法通过分组和子查询找出每个重复电话的最小ID,使用NOT IN排除这些ID进行删除。第二种方法通过两表连接,直接比较并删除ID较大的重复记录。
2588

被折叠的 条评论
为什么被折叠?



