[メンバー] テーブルでは、一部の行の列の値が同じですemail
。
login_id | email
---------|---------------------
john | [email protected]
peter | [email protected]
johnny | [email protected]
...
異なる login_id を使用しているが、同じメール アドレスを使用しているユーザーがいます。この列には一意の制約が設定されていません。これらの行を見つけて、削除する必要があるかどうかを確認する必要があります。
これらの行を見つけるにはどの SQL ステートメントを使用すればよいですか? (MySQL 5)
ベストアンサー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
)