MySQL 重複するデータの取得

MySQLで重複した値をもつ行を取得する方法

まずは、データを作るところから。

CREATE TABLE test ( id BIGINT NOT NULL , name TEXT NOT NULL , age SMALLINT NOT NULL ) ENGINE = InnoDB;
INSERT INTO test (id, name, age) VALUES ('1', 'nagatomo', '31');
INSERT INTO test (id, name, age) VALUES ('2', 'yoshida', '28');
INSERT INTO test (id, name, age) VALUES ('3', 'honda', '30');
INSERT INTO test (id, name, age) VALUES ('4', 'okazaki', '31');
INSERT INTO test (id, name, age) VALUES ('5', 'kagaawa', '28');
INSERT INTO test (id, name, age) VALUES ('6', 'usami', '25');
INSERT INTO test (id, name, age) VALUES ('3', 'kubo', '23');

そして、idが重複しているデータをピックアップします。

mysql> SELECT * FROM test GROUP BY id HAVING COUNT(*) >= 2;

 HAVING COUNT(*) >= 2 で、2つ以上重複している行だけをピックアップします。

 

0
  • このエントリーをはてなブックマークに追加