电脑疯子技术论坛|电脑极客社区

 找回密码
 注册

QQ登录

只需一步,快速开始

[编程和数据库] Mysql实现"查找重复的电子邮箱"的两种方法

[复制链接]
zhaorong 发表于 2018-9-20 15:29:36 | 显示全部楼层 |阅读模式
写SQL语句查询Person表中所有重复的电子邮箱

+----+---------+
| Id | Email   |
+----+---------+
| 1  | a@b.com |
| 2  | c@d.com |
| 3  | a@b.com |

+--例如,你的语句对上表应该返回如下结果--+---------+


+---------+
| Email   |
+---------+
| a@b.com |
+---------+

注意:所有的emails都是小写

1:先按邮箱Email分组,生成临时表A,表A中有Email和对应出现的次数。然后判断次数是否大于1

  1. SELECT Email
  2. FROM (SELECT Email, COUNT(*) AS Sum
  3.       FROM Person
  4.      GROUP BY Email) AS A
  5. WHERE A.Sum>1
复制代码


2:利用HAVING

WHERE 关键字无法与聚合函数一起使用。HAVING 子句可以让我们筛选分组后的各组数据。

  1. SELECT Email
  2. FROM Person
  3. GROUP BY Email
  4. HAVING COUNT(*)>1
复制代码



您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|VIP|电脑疯子技术论坛 ( Computer madman team )

GMT+8, 2025-1-23 10:27

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表