Rumah >pangkalan data >tutorial mysql >Bagaimanakah saya boleh Menggabungkan Berbilang Baris ke dalam Rentetan Dipisahkan Koma Menggunakan MySQL?

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

Susan Sarandon
Susan Sarandonasal
2024-11-22 16:44:12469semak imbas

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 |

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 |

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;

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 |

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!

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