作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含以下列的数据库表: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/
我是一名优秀的程序员,十分优秀!