MySQL列出所有重复项

use*_*781 15 mysql sql select duplicates

可能重复:
在MySQL中查找重复记录

我在MySQL中有一个像这样的表:

ID    name    email
1    john     abc@abc.com
2    johnny   abc@abc.com
3    jim      eee@eee.com
4    Michael  abec@awwbc.com
Run Code Online (Sandbox Code Playgroud)

我怎么能有MySQL查询将列出这样的重复一个?

重复搜索的结果:

ID    name    email         Duplicate
1    john     abc@abc.com      2
2    johnny   abc@abc.com      2
Run Code Online (Sandbox Code Playgroud)

Joh*_*Woo 31

SELECT  a.*, b.totalCount AS Duplicate
FROM    tablename a
        INNER JOIN
        (
            SELECT  email, COUNT(*) totalCount
            FROM    tableName
            GROUP   BY email
        ) b ON a.email = b.email
WHERE   b.totalCount >= 2
Run Code Online (Sandbox Code Playgroud)

为了获得更好的性能,请添加一个INDEXon列EMail.

要么

SELECT  a.*, b.totalCount AS Duplicate
FROM    tablename a
        INNER JOIN
        (
            SELECT  email, COUNT(*) totalCount
            FROM    tableName
            GROUP   BY email
            HAVING  COUNT(*) >= 2
        ) b ON a.email = b.email
Run Code Online (Sandbox Code Playgroud)