Bagaimanakah saya boleh Menggabungkan Berbilang Baris ke dalam Rentetan Dipisahkan Koma Menggunakan MySQL?

Susan Sarandon
Lepaskan: 2024-11-22 16:44:12
asal
373 orang telah melayarinya

How can I Combine Multiple Rows into a Comma-Separated String Using MySQL?

MySQL: Menyatukan Berbilang Baris menjadi Rentetan Dipisahkan Koma

Dalam MySQL, fungsi GROUP_CONCAT boleh digunakan untuk menggabungkan berbilang baris menjadi satu rentetan tunggal yang dipisahkan koma. Teknik ini amat berguna apabila menggabungkan data daripada jadual dengan perhubungan satu dengan banyak.

Pernyataan Masalah

Pertimbangkan jadual berikut:

| DISH |
|---|---|
| dish_id | dish_name |
| 1 | dish_1 |
| 2 | dish_2 |
| 3 | dish_3 |
| 4 | dish_4 |

| DISH_HAS_DISHES |
|---|---|
| meal_id | dish_id |
| 1 | 2 |
| 1 | 3 |
| 1 | 4 |
Salin selepas log masuk

Matlamatnya adalah untuk mengubah data ini menjadi format di mana setiap meal_id dikaitkan dengan senarai dish_id yang dipisahkan koma dan nama_hidangan. Output yang dikehendaki ialah:

| meal_id | dish_ids | dish_names |
|---|---|---|
| 1 | 2,3,4 | dish_2, dish_3, dish_4 |
Salin selepas log masuk
Salin selepas log masuk

Penyelesaian

Fungsi GROUP_CONCAT menyediakan cara yang cekap untuk mencapai penyatuan ini. Pertanyaan berikut menyertai jadual DISH dan DISH_HAS_DISHES, mengumpulkan hasil mengikut meal_id dan menggunakan fungsi GROUP_CONCAT untuk menggabungkan nilai dish_id dan dish_name untuk setiap kumpulan:

SELECT m.meal_id,
       GROUP_CONCAT(dish_id) AS dish_ids,
       GROUP_CONCAT(dish_name) AS dish_names
FROM DISH_HAS_DISHES m JOIN DISH d ON (m.dish_id = d.dish_id)
GROUP BY meal_id;
Salin selepas log masuk

Hasil

Melaksanakan pertanyaan ini akan menghasilkan yang diingini output:

| meal_id | dish_ids | dish_names |
|---|---|---|
| 1 | 2,3,4 | dish_2, dish_3, dish_4 |
Salin selepas log masuk
Salin selepas log masuk

Kesimpulan

Fungsi GROUP_CONCAT menyediakan alat yang berkuasa untuk menggabungkan berbilang baris menjadi satu rentetan. Teknik ini amat berguna dalam senario di mana anda perlu menyatukan data daripada jadual berkaitan, seperti dalam kes perhubungan satu dengan banyak.

Atas ialah kandungan terperinci Bagaimanakah saya boleh Menggabungkan Berbilang Baris ke dalam Rentetan Dipisahkan Koma Menggunakan MySQL?. 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