MySQL 5.5.28 di Ubuntu 12.04
Jika hasilnya lebih lama dari group_concat_max_len
itu hasilnya terpotong dengan tidak menarik.
Saat ini saya memiliki skrip yang mencoba memeriksa panjang yang diperlukan sebelumnya dan menetapkan group_concat_max_len
agar cukup besar.
Tetapi pemeriksaan menambahkan pertanyaan tambahan. Apakah ada kerugian untuk hanya menetapkan group_concat_max_len
ke nilai maksimum? Sisi positifnya adalah lebih sedikit kueri.
mysql
group-concatenation
Butkus Buttle
sumber
sumber
Jawaban:
Sesuai BOL MySQL Di Sini
Hasilnya dipotong ke panjang maksimum yang diberikan oleh
group_concat_max_len
variabel sistem, yang memiliki adefault value of 1024
. Nilai dapat ditetapkan lebih tinggi, meskipun panjang maksimum efektif dari nilai pengembalian dibatasi oleh nilaimax_allowed_packet
. Sintaks untuk mengubah nilaigroup_concat_max_len
atruntime
adalah sebagai berikut, di mana val adalahunsigned integer
:Catatan: The
maximum permitted
panjang mengakibatkanbytes
untukGROUP_CONCAT()
fungsi. Standarnya adalah1024
.Sebagai blog yang didokumentasikan MySQL Di Sini Menggunakan
GROUP_CONCAT
dengangroup_concat_max_len
pengaturan kecil ? Hasil Anda akansilently truncated
(pastikan untuk memeriksa peringatan itu).Seperti Blog MySQL dari Sini : Parameter ini membatasi panjang teks hasil gabungan. Defaultnya adalah . Saya pikir ini adalah nilai yang sangat rendah. Saya telah menggunakan semakin banyak, baru-baru ini, untuk menyelesaikan masalah yang sulit. Dan dalam kebanyakan kasus, adil , menghasilkan diam (Argh!) Memotong hasil, sehingga mengembalikan hasil yang salah. Sangat menarik untuk mengetahui bahwa nilai maksimum untuk parameter ini dibatasi oleh . Saya akan menyarankan, kemudian, bahwa parameter ini harus dihapus sama sekali, dan miliki sebagai . Kalau tidak, saya ingin memiliki , dalam urutan beberapa .
@Shlomi Noach
group_concat_max_len
maximum
GROUP_CONCAT
1024
GROUP_CONCAT
1024
too low
max_packet_size
max_packet_size
limitation
only limitation
very large default value
MB
Untuk Lebih Lanjut ref Anda Di Sini & Di Sini
sumber
Saya menghargai pertanyaan ini agak lama sekarang, tetapi jika seseorang menemukannya dan bertanya-tanya, satu kelemahan dari pengaturan nilai maksimum (atau yang sangat besar) adalah group_concat dapat mengembalikan gumpalan daripada varchar. Saran di tempat lain mengatakan untuk mengatur group_concat_max_len ke 512 agar selalu mengembalikan varchar daripada gumpalan. Saya cenderung hanya melemparkannya ke char jika perlu.
sumber