MySQLの列に同じ値を持つ行を検索する 質問する

MySQLの列に同じ値を持つ行を検索する 質問する

[メンバー] テーブルでは、一部の行の列の値が同じです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
)

おすすめ記事