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
658 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!

sumber:php.cn
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