Rumah >pangkalan data >tutorial mysql >Bagaimanakah Fungsi GROUP_CONCAT dan CONCAT MySQL Mengubah Berbilang Baris menjadi Rentetan Dipisahkan Koma Tunggal?

Bagaimanakah Fungsi GROUP_CONCAT dan CONCAT MySQL Mengubah Berbilang Baris menjadi Rentetan Dipisahkan Koma Tunggal?

Patricia Arquette
Patricia Arquetteasal
2024-12-15 08:36:16414semak imbas

How Can MySQL's GROUP_CONCAT and CONCAT Functions Transform Multiple Rows into a Single Comma-Separated String?

Menggunakan GROUP_CONCAT dan CONCAT untuk Transformasi Data dalam MySQL

Dalam MySQL, menggabungkan data daripada berbilang baris menjadi satu rentetan boleh dicapai melalui penggunaan fungsi GROUP_CONCAT. Pertimbangkan jadual yang mengandungi maklumat berikut:

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

Objektif mungkin untuk mengubah data ini ke dalam format berikut:

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

Untuk mencapainya, pendekatan gabungan GROUP_CONCAT dan CONCAT boleh diambil bekerja. Berikut ialah pertanyaannya:

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;

Pertanyaan ini beroperasi dalam dua peringkat:

  1. Pertanyaan pertama dikumpulkan mengikut lajur id dan Nama, menggabungkan nilai dalam setiap kumpulan menggunakan fungsi GROUP_CONCAT. Ini menghasilkan set hasil dengan pasangan unik id dan Nama di mana Nilai disediakan dalam format dipisahkan koma.
  2. Kumpulan luar mengikut operasi id seterusnya menggabungkan hasil pertanyaan dalam, menghasilkan satu baris untuk setiap id unik dengan senarai Nama:Pasangan Nilai yang dipisahkan koma.

Dengan melaksanakan ini pertanyaan, anda akan memperoleh transformasi data yang diingini, dengan baris dalam format berikut:

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

Atas ialah kandungan terperinci Bagaimanakah Fungsi GROUP_CONCAT dan CONCAT MySQL Mengubah Berbilang Baris menjadi Rentetan Dipisahkan Koma Tunggal?. 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