Rumah >pangkalan data >tutorial mysql >Gunakan fungsi GROUP_CONCAT MySQL untuk menggabungkan berbilang baris data ke dalam satu baris

Gunakan fungsi GROUP_CONCAT MySQL untuk menggabungkan berbilang baris data ke dalam satu baris

WBOY
WBOYasal
2023-07-25 19:54:253510semak imbas

Gunakan fungsi GROUP_CONCAT MySQL untuk menggabungkan berbilang baris data ke dalam satu baris

Dalam proses pemprosesan data sebenar, kadangkala kita perlu menggabungkan berbilang baris data ke dalam satu baris untuk memudahkan analisis dan pemprosesan seterusnya. Fungsi GROUP_CONCAT MySQL boleh membantu kami mencapai fungsi ini. Artikel ini akan memperkenalkan penggunaan fungsi GROUP_CONCAT dan memberikan contoh kod dalam beberapa senario biasa.

Fungsi GROUP_CONCAT ialah fungsi agregat yang digunakan untuk menggabungkan rentetan dalam MySQL Ia boleh menggabungkan lajur data ke dalam rentetan mengikut pembatas yang ditentukan. Sintaks khusus adalah seperti berikut:

GROUP_CONCAT([DISTINCT] expr [,expr ...]
             [ORDER BY {unsigned_integer | col_name | expr}
                  [ASC | DESC] [,col_name ...]]
             [SEPARATOR str_val])

di mana DISTINCT mewakili penyahduplikasian data yang akan digabungkan, expr mewakili nama lajur atau ungkapan yang akan digabungkan, ORDER BY digunakan untuk mengawal susunan data yang digabungkan, dan SEPARATOR digunakan untuk nyatakan rentetan yang digabungkan.

Berikut ialah contoh kod cara menggunakan fungsi GROUP_CONCAT dalam beberapa senario biasa:

  1. Menggabungkan data dalam lajur yang sama

Andaikan kita mempunyai jadual pelajar yang mengandungi nama dan hobi pelajar. Kami ingin menggabungkan setiap hobi pelajar menjadi satu baris untuk analisis yang lebih mudah. Ini boleh dicapai menggunakan kod berikut:

SELECT student_name, GROUP_CONCAT(hobby) AS hobbies
FROM student
GROUP BY student_name;

Kod di atas akan mengeluarkan nama setiap pelajar dan hobi mereka, dan hobi disambungkan menggunakan pemisah koma lalai.

  1. Gabungkan data dalam berbilang lajur

Kadangkala kita perlu menggabungkan data dalam berbilang lajur Sebagai contoh, selain hobi, jadual pelajar kita juga mempunyai lajur penilaian. Kami mahu menggabungkan kesukaan dan penilaian setiap pelajar ke dalam satu rentetan. Ini boleh dicapai menggunakan kod berikut:

SELECT student_name, GROUP_CONCAT(CONCAT(hobby, ':', score)) AS hobby_score
FROM student
GROUP BY student_name;

Kod di atas akan mengeluarkan nama setiap pelajar, serta hobi dan penilaian mereka, dipisahkan dengan titik bertindih.

  1. Gabung data dalam susunan yang ditentukan

Kadangkala kita perlu menggabungkan data dalam susunan yang ditentukan. Sebagai contoh, kami mempunyai jadual pesanan yang mengandungi nombor pesanan dan nama produk. Kami ingin menggabungkan nama produk dalam tertib nombor pesanan menaik. Anda boleh menggunakan kod berikut untuk mencapai ini:

SELECT order_id, GROUP_CONCAT(product_name ORDER BY order_id ASC) AS products
FROM orders
GROUP BY order_id;

Kod di atas akan mengeluarkan nombor pesanan dan nama produk yang sepadan untuk setiap pesanan. Nama produk disusun mengikut urutan menaik bagi nombor pesanan.

Di atas ialah contoh kod cara menggunakan fungsi GROUP_CONCAT MySQL dalam beberapa senario biasa. Gunakan fungsi GROUP_CONCAT untuk menggabungkan berbilang baris data ke dalam satu baris dengan mudah, meningkatkan kecekapan pemprosesan data. Saya harap artikel ini boleh membantu operasi pangkalan data anda!

Atas ialah kandungan terperinci Gunakan fungsi GROUP_CONCAT MySQL untuk menggabungkan berbilang baris data ke dalam satu baris. 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