mysql - 如何在不给出任何键的情况下选择表中所有重复的数据?
问题描述
我有一个包含数千个数据但重复数据的表。现在我想自动选择所有这些而不给出任何键。请问我该怎么做?
例子:
|id|name |email|
---+-------+-----+
|1 |William|same1|
|2 |John |same1|
|3 |Nabeel |same2|
|4 |Jessica|same3|
|5 |Adam |same3|
|6 |Albert |same1|
|7 |Mark |same3|
|8 |Jason |same3|
如何选择唯一重复的?
解决方案
我认为您正在寻找COUNT()和GROUP BY 与 HAVING:
SELECT name, email, COUNT(*)
FROM users
GROUP BY name, email
HAVING COUNT(*) > 1;
每@PatrickQ 这里只是重复的电子邮件之一:
SELECT email, COUNT(*)
FROM users
GROUP BY email
HAVING COUNT(*) > 1;
..这是一个会重复名字的
SELECT name, COUNT(*)
FROM users
GROUP BY name
HAVING COUNT(*) > 1;
当有多个电子邮件地址时,这将返回与每个电子邮件地址关联的名称数量:
SELECT email, COUNT(DISTINCT name)
FROM users
GROUP BY email
HAVING COUNT(DISTINCT name) > 1
推荐阅读
- javascript - div 的 sessionStorage css 属性
- angular - 是否可以为枚举设置某种接口?
- android - 跳过某些循环后如何调试for循环
- c# - 在 IIS 中安装 SSL 后获取 ERR_TOO_MANY_REDIRECTS
- python - 在 Python 中从 XML 中提取元素的所有属性
- java - 如何通过蓝牙发送日历类的变量
- python - Django 多处理数据库并发
- jquery - jQuery Timepicker“changeTime”不起作用
- django - 将 request.get 和 request.post 数据转换为字典
- python - 如何创建自己的方法并在 DataFrame 中使用它?