MySQL删除重复项——delete+group by

在【领扣】中遇到删除重复电子邮箱的题,在HeidiSQL中运行通过,但是LeetCode不能通过

以下为Heidi SQL中通过的代码

SELECT Id,Email FROM Person
GROUP BY Email
ORDER BY Id;

原因在于此题为删除,需要使用到delete,而不是筛选。下面附上一个容易看懂的范例。

delete from Person
where Id not in (select Id from (
                        select min(Id) as Id 
                        from Person 
                        group by Email) as p
                )

其中下面这段代码的运行结果如下,它代表利用group by筛选出Email的非重复项对应的Id:

select min(Id) as Id 
                        from Person 
                        group by Email

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/fffffffff128/article/details/89082734