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)
1个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!