gpt4 book ai didi

mysql - 如何删除数据库表中的所有重复项而不保留其中的任何一个?

转载 作者:行者123 更新时间:2023-11-29 00:04:24 26 4
gpt4 key购买 nike

我有一个包含以下列的数据库表:email、name、id

存在具有相同电子邮件和名称的重复记录(id 可能不同也可能不同)

我想删除所有重复项而不保留其中任何一个。

例子

email            | name         | id
-------------------------------------------------
a@b.com | a | 2 --- remove
a@b.com | a | 4 --- remove
b@c.com | b | 3
c@d.com | c | 5

我可以在 phpmyadmin 中使用什么 sql 查询来执行此操作?

最佳答案

你可以使用EXISTS:

DELETE FROM TableName t1
WHERE EXISTS
(
SELECT 1 FROM TableName t2
WHERE t1.id <> t2.id
AND COALESCE(t1.email,'') = COALESCE(t2.email,'')
AND COALESCE(t1.name,'') = COALESCE(t2.name,'')
)

如果电子邮件或姓名为空,我还使用 COALESCE 删除重复项。

关于mysql - 如何删除数据库表中的所有重复项而不保留其中的任何一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28214012/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com