Pernahkah Anda ingin mengetahui record yang mana yang memiliki isi data yang duplikat berdasarkan isi yang sama pada sebuah field di basis data MySQL? Informasi ini akan didapatkan setelah Anda mengambil record dan menampilkannya yang mana yang memiliki isi yang sama dengan cara mengelompokkan mereka berdasarkan field tadi. Oke, berikut ini skrip SQL yang dapat Anda gunakan untuk mewujudkannya.
Misalkan kita memiliki sebuah tabel yang bernama mytable dengan record di dalamnya:
+----+-------+ | id | name | +----+-------+ | 1 | One | | 2 | One | | 3 | Two | | 4 | Two | | 5 | Two | | 6 | Three | | 7 | Three | | 8 | Three | | 9 | Three | | 10 | Four | | 11 | Five | +----+-------+ 11 rows in set (0.00 sec)
dan Anda ingin menampilkan yang mana yang memiliki isi duplikat berdasarkan data yang sama di field name menjadi seperti ini:
+-------+---------+ | name | howmany | +-------+---------+ | Three | 4 | | Two | 3 | | One | 2 | +-------+---------+ 3 rows in set (0.00 sec)
Dengan kata lain, kita menampilkan nilai field name yang memiliki nilai yang lebih dari satu record. Sedangkan record yang tidak duplikat, diabaikan (yaitu record yang field name-nya bernilai Four dan Five).
Nah, untuk mendapatkan hasil di atas, berikut ini skrip SQL-nya:
SELECT name, COUNT(name) AS howmany FROM `my_table` GROUP BY name HAVING howmany > 1 ORDER BY howmany DESC;

wah mantab, sederhana tapi bermakna.