Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengawal Susunan Nilai dalam Fungsi GROUP_CONCAT MySQL?

Bagaimanakah Saya Boleh Mengawal Susunan Nilai dalam Fungsi GROUP_CONCAT MySQL?

DDD
DDDasal
2024-12-01 15:44:12579semak imbas

How Can I Control the Order of Values in MySQL's GROUP_CONCAT Function?

Hasil Pesanan dalam GROUP_CONCAT

Apabila menggunakan fungsi GROUP_CONCAT untuk menggabungkan nilai bagi baris berkumpulan, ia boleh berguna untuk mengekalkan susunan nilai ini.

Masalah: Keputusan Tidak Tersusun

Andaikan kita mempunyai jadual bernama "li" dengan lajur: client_id, paparan dan peratusan. Kami mahu mengumpulkan baris mengikut client_id dan menggabungkan nilai pandangan. Kami pada mulanya mencuba perkara berikut:

SELECT li.client_id,
       group_concat(li.views) AS views,
       group_concat(li.percentage) FROM li
       GROUP BY client_id;

Ini menghasilkan hasil dengan pandangan digabungkan, tetapi dalam susunan sewenang-wenangnya:

+-----------+-------------------+-----------------------------+
| client_id | views             | group_concat(li.percentage) |
+-----------+-------------------+-----------------------------+
|         1 | 6,4,9,2,7,5,3,8,1 | 20,55,56,67,80,66,33,34,52  |
+-----------+-------------------+-----------------------------+

Penyelesaian: Pesanan Dalam GROUP_CONCAT

Kepada memesan keputusan dalam GROUP_CONCAT, kita boleh menggunakan ORDER BY di dalam fungsi:

SELECT li.client_id,
       group_concat(li.views ORDER BY li.views ASC) AS views,
       group_concat(li.percentage ORDER BY li.views ASC) AS percentage
       FROM li
       GROUP BY client_id

Ini akan menyusun lajur paparan dalam tertib menaik, sambil mengekalkan nilai peratusan yang sepadan dalam susunan yang sama:

+-----------+-------------------+----------------------------+
| client_id | views             | percentage                 |
+-----------+-------------------+----------------------------+
|         1 | 1,2,3,4,5,6,7,8,9 | 52,67,33,55,66,20,80,34,56 |
+-----------+-------------------+----------------------------+

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengawal Susunan Nilai dalam Fungsi GROUP_CONCAT MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn