Rumah > pangkalan data > tutorial mysql > Bagaimanakah GROUP_CONCAT Boleh Menyatukan Data MySQL ke dalam Satu Lajur?

Bagaimanakah GROUP_CONCAT Boleh Menyatukan Data MySQL ke dalam Satu Lajur?

Barbara Streisand
Lepaskan: 2024-12-18 19:28:14
asal
749 orang telah melayarinya

How Can GROUP_CONCAT Consolidate MySQL Data into a Single Column?

Menggunakan GROUP_CONCAT untuk Penggabungan Data Komprehensif

Apabila berhadapan dengan tugas mengubah data menjadi format yang disatukan, GROUP_CONCAT muncul sebagai alat yang berkuasa dalam MySQL. Mari kita terokai fungsinya dengan menangani masalah manipulasi data tertentu:

Objektif:
Ubah data berikut kepada format yang disatukan:

id Name Value
1 A 4
1 A 5
1 B 8
2 C 9

Diingini Output:

id Column
1 A:4,5,B:8
2 C:9

Penyelesaian:

Untuk mencapai transformasi ini, kami menggunakan GROUP_CONCAT bersama-sama dengan subkueri:

select id, group_concat(`Name` separator ',') as `ColumnName`
from
(
  select id, 
  concat(`Name`, ':', group_concat(`Value` separator ',')) as Name
   from mytbl group by id, Name
) tbl
group by id;
Salin selepas log masuk

Pecahan:

The subquery mempunyai dua tujuan:

  1. Ia mengumpulkan data mengikut id dan Nama, menggabungkan lajur Nilai dalam setiap kumpulan. Ini menghasilkan jadual dengan setiap gabungan unik id dan Nama mempunyai rentetan nilai yang digabungkan.
  2. Fungsi GROUP_CONCAT luar kemudian mengumpulkan hasil mengikut id dan menggabungkan nilai Nama ke dalam rentetan tunggal, dipisahkan dengan koma.

Contoh:

Pertimbangkan data yang diberikan. Subquery menghasilkan:

id Name
1 A:4,5
1 B:8
2 C:9

GROUP_CONCAT luar kemudiannya menghasilkan output akhir:

id Column
1 A:4,5,B:8
2 C:9

Atas ialah kandungan terperinci Bagaimanakah GROUP_CONCAT Boleh Menyatukan Data MySQL ke dalam Satu Lajur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan