【mysql】重複したレコードのデータを取り出す

重複したレコードのデータを取り出すには、GROUP BY とHAVINGを使えばいい。

サンプルコード
----------------------------------------------------
SELECT カラム名 FROM テーブル名 GROUP BY カラム名 HAVING COUNT(*) >= 2;
----------------------------------------------------

HAVING句はグループ化が行われたデータに対して、条件を指定してデータの絞込みができる。サンプルコードでは、グループ化に指定したカラム名のうち、2つ以上あるものを取り出している。

※WHERE句とGROUP BY句を一緒に使った場合は、まずWHERE句よって条件に合うデータを抽出されて、その結果に対しGROUP BY句によってグループ化が行われる。HAVING句の場合と順序が逆なるということ。
※HAVEは捕まえる、選び取るの意。

複数のカラムが重複したレコードを取り出すサンプルコード
----------------------------------------------------
SELECT カラム名 FROM テーブル名 GROUP BY カラム名1,カラム名2 HAVING COUNT(*) >= 2;
----------------------------------------------------