Jumlah Karakter Hasil Query dengan Fungsi Group_Concat pada MySQL Terbatas?
July 22, 2008 – 10:43 amKadang kala ketika kita bermain-main dengan query pada database MySQL kita butuh melakukan query dengan mengelompokkan field ataupun record pada field tertentu yang memiliki kondisi yang sama.
Pengelompokan field ataupun record pada field tertentu bisa dilakukan dengan menggunakan fungsi concat() untuk penglompokan field dan fungsi group_concat() untuk mengelompokkan record pada filed tertentu. Sebagai contoh query sederhana menggunakan concat seperti dibawah ini:
s elect concat(a,b,c) from tableA
Untuk penggunaan fungsi concat ini, kita dapat menambahkan karakter tertentu yang digunakan sebagai pemisah dari kolom-kolom yang akan digabungkan, misalnya:
s elect concat(a,'*',b,'*',c) from tableA
Query di atas akan menampilkan isi dari gabungan kolom a, b, dan c dengan pemisah berupa karakter ‘*’ seperti ini: isikolomA*isikolomB*isikolomC. Untuk keterangan lain mengenai fungsi concat() ini bisa ditemukan di sini.
Sedangkan penggunakan fungsi group_concat seperti dicontohkan dibawah ini:
s elect group_concat(a) from tableA group by kolomID;
Perintah di atas akan menghasilkan gabungan dari isi kolom a yang memiliki persamaan isi kolomID dengan pemisah (default) berupa tanda koma ‘,’. Keterangan lebih lengkap mengenai group_concat() ada di sini.
Khusus dalam menggunakan group_concat() kita harus berhati-hati karena ternyata setingan default mysql untuk penggunaan group_concat() hanya bisa menampilkan 1024 karakter. Sehingga ketika kita menggunakan fungsi ini dengan hasil gabungan yang lebih dari 1024 karakter, karakter ke 1025 dan seterusnya tidak akan ditampilkan. Akibatnya ketika kita gunakan fungsi ini untuk menentukan kondisi pencarian, hasilnya tidak akan maksimal.
Untuk mengatasi hal ini kita bisa menambahkan/mengedit isi group_concat_max_len pada file my.cnf seperti pada tulisan ini atau dengan mengikuti petunjuk yang ada di sini. Semoga bermanfaat.
nb.
Maaf, contoh code di atas seharusnya ditulis select bukan s elect. Ndak tau kenapa setiap saya tuliskan select, wp malah ndak mau nyimpen postingan ini. Terpaksa saya pisah s nya..he.he..
One Response to “Jumlah Karakter Hasil Query dengan Fungsi Group_Concat pada MySQL Terbatas?”
Salam kenal,mas
bpleh saya bertanya ttg mengatasi hal ini bagaimana menambahkan/mengedit isi group_concat_max_len pada file my.cnf seperti pada tulisan ini atau dengan mengikuti petunjuk yang ada di sini..
masih bingung,mas
setiap kali mau cari data yang di group concate masih hilang sebagian kata-katanya???
Apakah perlu saya taruh sqlnya?
Terimakasih banyak
ditunggu Pencerahannya
n’ slamat berpuasa n Lebaran
Kalau menggunakan linux letak my.cnf ada di /etc/mysql/my.cnf. Edit bagian group_concat_max_len yang ada di dalam file my.cnf tersebut sesuai dengan jumlah karakter maksimal yang akan ditampilkan. Mungkin bisa baca-baca di http://www.mysqlperformanceblog.com.
Mas Putrapetir menggunakan linux atau windows webservernya?
By putrapetir on Sep 3, 2010