Menggabungkan Berbilang Baris MySQL ke dalam Satu Medan
Penyertaan MySQL sering mengembalikan banyak baris, menjadikan analisis data menyusahkan. Artikel ini menunjukkan cara menggabungkan berbilang baris dengan cekap ke dalam satu medan untuk pengendalian yang lebih mudah.
Fungsi GROUP_CONCAT
adalah kunci kepada proses ini. Contohnya:
<code class="language-sql">SELECT person_id, GROUP_CONCAT(hobbies SEPARATOR ', ') FROM peoples_hobbies GROUP BY person_id;</code>
Pertanyaan ini mengumpulkan hobi dengan person_id
, menggabungkannya dengan koma sebagai pemisah.
Untuk mengalih keluar pendua, gunakan DISTINCT
:
<code class="language-sql">SELECT person_id, GROUP_CONCAT(DISTINCT hobbies SEPARATOR ', ') FROM peoples_hobbies GROUP BY person_id;</code>
Untuk hasil yang diisih, gunakan ORDER BY
:
<code class="language-sql">SELECT person_id, GROUP_CONCAT(hobbies ORDER BY hobbies ASC SEPARATOR ', ') FROM peoples_hobbies GROUP BY person_id;</code>
Ingat, GROUP_CONCAT
mempunyai had lalai 1024 bait. Untuk meningkatkan ini, gunakan:
<code class="language-sql">SET group_concat_max_len = 2048;</code>
Atau, kira secara dinamik panjang yang diperlukan:
<code class="language-sql">SET group_concat_max_len = CAST( (SELECT SUM(LENGTH(hobbies)) + COUNT(*) * LENGTH(', ') FROM peoples_hobbies GROUP BY person_id) AS UNSIGNED);</code>
GROUP_CONCAT
memudahkan manipulasi data dengan menyatukan berbilang baris menjadi satu medan yang lebih terurus.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Berbilang Baris MySQL ke dalam Medan Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!