随笔 - 384  文章 - 0  评论 - 0  阅读 - 13万

力扣196(MySQL)-删除重复的电子邮箱(简单)

题目:

表: Person

编写一个 SQL 删除语句来 删除 所有重复的电子邮件,只保留一个id最小的唯一电子邮件。

以 任意顺序 返回结果表。 (注意: 仅需要写删除语句,将自动对剩余结果进行查询)

查询结果格式如下所示。

示例:

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/delete-duplicate-emails
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:

自连接两个表,从p1表中删除满足where条件的数据,那么where条件应该是依次拿p1表中的每条数据与p2表的每条数据做比较,既要两个邮箱相同且这时p1的id要大于p2的id,满足这个条件就删除p1表中的数据。

详细题解可以看这位老师的:点我跳转

1 delete p1
2 from Person p1, Person p2
3 where p1.email = p2.email and p1.id > p2.id;

小知识:

DELETE语句的基本语法:

1 DELETE FROM 表名
2 WHERE 筛选条件;

DELETE语句连接简化语法:

1 DELETE 表1
2 FROM 表1,表2
3 WHERE 连接条件
4 AND 删除条件;

 

posted on   我不想一直当菜鸟  阅读(69)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示