Kembali lagi di tutorial mysql media-info.id, kali ini kita akan membahas group_concat di mysql.
adapun pengertian group_concat adalah sebuah fungsi mysql untuk menggabungkan nilai-nilai yang di kelompokan menjadi sebuah string.
langsung saja kita praktekan dengan cara membuat database bernama contoh_db di dalamnya terdapat tabel bernama profile/mahasiswa berisi kolom id, nama dan umur
dan memiliki data seperti gambar dibawah.
kasusnya kita harus menampilkan umur ada berapa data, maka kita akan menggunakan fungsi GROUP BY umur. lihat query dibawah.
SELECT umur, COUNT(*) as jml_data FROM profile GROUP BY umur
maka akan ada tampilan umur dan jml data
pada kasus tertentu kita di hadapkan untuk menambahkan kolom data yang di group, seperti contoh di atas kita menampilkan umur dan jml data sedangkan kita tidak tahu data nama siapa saja yg di group. sebenarnya kita bisa menambahkan data nama di select tapi data yang akan terambil cuman satu, maka solusinya adalah memakai group_concat. simak query dibawah ini.
SELECT umur, COUNT(*) as jml_data, GROUP_CONCAT(nama SEPARATOR ',') as nama FROM profile GROUP BY umur
atau
SELECT umur, COUNT(*) as jml_data, GROUP_CONCAT(DISTINCT nama SEPARATOR ',') as nama FROM profile GROUP BY umur
maka tampilannya akan seperti ini.
jadi ga perlu lagi melakukan looping di php atau di backend nya, karena pengalaman pribadi dan kebanyakan tutorial melakukan hal seperti itu, cukup pakai fungsi group_concat saja