第一步:建表:
mysql> create table Email(id int,email varchar(255));
mysql> insert into Email(id,email) values('1','a@b.com');
mysql> insert into Email(id,email) values('2','b@b.com');
mysql> insert into Email(id,email) values('3','c@b.com');
mysql> insert into Email(id,email) values('4','a@b.com');
mysql> select * from Email;
+------+---------+
| id | email |
+------+---------+
| 1 | a@b.com |
| 2 | b@b.com |
| 3 | c@b.com |
| 4 | a@b.com |
+------+---------+
4 rows in set (0.00 sec)
第二步:
法一:
#计算表中各个email出现的次数,并将该表作为临时表p
select
distinct a.Email as Email
from
Person as a
where
a.Email = a.Email;
#从临时表中找出emali数量大于1 的email
select
email
from
(select email, count(email) as countemail from Email group by email ) as p
where
p.countemail>1;
#法二:
mysql>
select
email
from
Email
group by
email
having
count(email) > 1;
+---------+
| email |
+---------+
| a@b.com |
+---------+
1 row in set (0.00 sec)
#法三:
mysql>
select
distinct a.email
from
Email as a left
join
Email as b
on
a.email = b.email
where
a.id != b.id;
+---------+
| email |
+---------+
| a@b.com |
+---------+
1 row in set (0.01 sec)