Saya menggunakan GROUP_CONCAT()
dalam permintaan MySQL untuk mengubah beberapa baris menjadi satu string. Namun, panjang maksimum hasil fungsi ini adalah 1024
karakter.
Saya sangat menyadari bahwa saya dapat mengubah param group_concat_max_len
untuk meningkatkan batas ini:
SET SESSION group_concat_max_len = 1000000;
Namun, pada server yang saya gunakan, saya tidak dapat mengubah param. Bukan dengan menggunakan kueri sebelumnya dan bukan dengan mengedit file konfigurasi apa pun.
Jadi pertanyaan saya adalah: Apakah ada cara lain untuk mendapatkan output dari query beberapa baris menjadi satu string?
mysql
group-concat
ZeWaren
sumber
sumber
SET
pernyataan untuk mengubah variabel sesi?Jawaban:
adalah pengaturan sementara, ruang lingkup sesi,. Ini hanya berlaku untuk sesi saat ini. Anda harus menggunakannya seperti ini.
Anda dapat melakukan ini bahkan dalam berbagi hosting, tetapi ketika Anda menggunakan sesi lain, Anda perlu mengulangi
SET SESSION
perintah.sumber
SET GLOBAL group_concat_max_len=6999
untuk membuat pengaturan ini valid di seluruh kueriParameter yang benar untuk mengatur panjang maksimum adalah:
value_numeric
harus> 1024; secara defaultgroup_concat_max_len
nilainya adalah 1024.sumber
group_concat_max_len
ke 4 . ( mysql docs ). "value_numeric
harus> = 4" demikian halnya di sini. Saya sebenarnya menggunakan ini untuk menguji apa yang terjadi ketika Anda melebihigroup_concat_max_len
nilai.SET
permintaan yang akan memengaruhi pengaturan setelah dimulai ulang.Sertakan pengaturan ini di file konfigurasi xampp my.ini:
Kemudian restart xampp mysql
sumber
Anda bisa mencoba ini
sumber
Sintaks yang benar adalah mysql>
SET @@global.group_concat_max_len = integer;
Jika Anda tidak memiliki hak istimewa untuk melakukan ini di server tempat database Anda berada maka gunakan query seperti:
mySQL =
"SET @@session.group_concat_max_len = 10000;"
atau nilai yang berbeda.Baris berikutnya:
SET objRS = objConn.Execute(mySQL)
variabel Anda mungkin berbeda.maka
mySQL="SELECT GROUP_CONCAT(......);"
dllsaya menggunakan versi terakhir karena saya tidak memiliki hak untuk mengubah nilai default 1024 secara global (menggunakan cPanel).
Semoga ini membantu.
sumber
Kueri ini agak aneh tetapi tidak perlu kueri lain untuk menginisialisasi variabel; dan itu bisa tertanam dalam kueri yang lebih kompleks. Ia mengembalikan semua 'field2 yang dipisahkan oleh tanda titik koma.
sumber