bob*_*obo 190 mysql sql database
在[member]表中,某些行具有相同的email列值.
login_id | email
---------|---------------------
john | john123@hotmail.com
peter | peter456@gmail.com
johnny | john123@hotmail.com
...
Run Code Online (Sandbox Code Playgroud)
有些人使用不同的login_id但是使用相同的电子邮件地址,此列上没有设置唯一约束.现在我需要找到这些行,看看是否应该删除它们.
我应该使用什么SQL语句来查找这些行?(MySQL 5)
Sco*_*ers 314
此查询将为您提供电子邮件地址列表及其使用次数,首先使用最常用的地址.
SELECT email,
count(*) AS c
FROM TABLE
GROUP BY email
HAVING c > 1
ORDER BY c DESC
Run Code Online (Sandbox Code Playgroud)
如果你想要完整的行:
select * from table where email in (
select email from table
group by email having count(*) > 1
)
Run Code Online (Sandbox Code Playgroud)
HLG*_*GEM 56
select email from mytable group by email having count(*) >1
Run Code Online (Sandbox Code Playgroud)
Iva*_*uev 12
这是查询email用于多于一个的查询login_id:
SELECT email
FROM table
GROUP BY email
HAVING count(*) > 1
Run Code Online (Sandbox Code Playgroud)
您将需要第二个(嵌套的)查询来获取login_idby的列表email.
接受的答案的第一部分不适用于MSSQL.
这对我有用:
select email, COUNT(*) as C from table
group by email having COUNT(*) >1 order by C desc
Run Code Online (Sandbox Code Playgroud)
小智 5
如果您的电子邮件列包含空值,请使用此选项
select * from table where email in (
select email from table group by email having count(*) > 1 and email != ''
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
372665 次 |
| 最近记录: |