2022-12-07:删除重复的电子邮箱。删除重复数据后,id=3的数据被删除。请问sql语句如何写?

2022-12-07:删除重复的电子邮箱。删除重复数据后,id=3 的数据被删除。请问 sql 语句如何写?

DROP TABLE IF EXISTS `person`;
CREATE TABLE `person` (
  `id` int(11) NOT NULL,
  `email` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO `person` VALUES ('1', 'john@example.com');
INSERT INTO `person` VALUES ('2', 'bob@example.com');
INSERT INTO `person` VALUES ('3', 'john@example.com');

答案 2022-12-07:

sql 语句如下:






























DELETE p1 FROM person p1,
    person p2
WHERE
    p1.email = p2.email AND p1.id > p2.id

运行结果如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本作品采用《CC 协议》,转载必须注明作者和本文链接
微信公众号:福大大架构师每日一题。最新面试题,涉及 golang,rust,mysql,redis,云原生,算法,分布式,网络,操作系统。
讨论数量: 1

未经验证

DELETE FROM person p1 WHERE EXISTS  (SELECT id FROM person p2 WHERE p1.email = p2.email AND p1.id > p2.id)
2年前 评论

未填写
文章
488
粉丝
23
喜欢
39
收藏
22
排名:441
访问:2.1 万
私信
所有博文
社区赞助商