小编典典

查找MySQL中列上具有相同值的行

mysql

在[成员]表中,某些行的email列值相同。

login_id | email
---------|---------------------
john     | john123@hotmail.com
peter    | peter456@gmail.com
johnny   | john123@hotmail.com
...

有些人使用了不同的login_id,但是使用了相同的电子邮件地址,因此在此列上未设置唯一约束。现在,我需要查找这些行,并查看是否应将其删除。

我应该使用什么SQL语句查找这些行?(MySQL 5)


阅读 238

收藏
2020-05-17

共1个答案

小编典典

此查询将为您提供电子邮件地址及其使用次数的列表,最常用的地址在前。

SELECT email,
       count(*) AS c
FROM TABLE
GROUP BY email
HAVING c > 1
ORDER BY c DESC

如果要完整行:

select * from table where email in (
    select email from table
    group by email having count(*) > 1
)
2020-05-17