Bagaimana untuk Mengambil Berbilang Baris sebagai Baris Dipisahkan Koma Tunggal dalam MySQL?

DDD
Lepaskan: 2024-11-14 13:49:02
asal
387 orang telah melayarinya

How to Fetch Multiple Rows as a Single Comma-Separated Row in MySQL?

Mengambil Berbilang Baris sebagai Baris Dipisahkan Koma Tunggal dalam MySQL

Pernyataan Masalah:

Anda mempunyai dua jadual, "DISH" dan "DISH_HAS_DISHES," di mana hidangan dikaitkan dengan pergantungan satu-ke-banyak. Matlamatnya ialah untuk mendapatkan semula data daripada kedua-dua jadual dalam format tertentu: senarai ID dan nama hidangan yang dipisahkan koma untuk setiap hidangan.

Cadangan Penyelesaian dengan Fungsi GROUP_CONCAT:

MySQL menyediakan fungsi GROUP_CONCAT, yang membolehkan penyatuan berbilang baris berdasarkan yang ditentukan pembatas. Dengan menggunakan fungsi ini, anda boleh mencapai output yang diingini:

SELECT m.meal_Id, 
       GROUP_CONCAT(dish_id) dish_ids, 
       GROUP_CONCAT(dish_name) 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

Penjelasan:

  1. SERTAI "DISH_HAS_DISHES" (m) dan "DISH" ( d) jadual berdasarkan medan dish_id biasa.
  2. Gunakan GROUP_CONCAT(dish_id) untuk menggabungkan ID hidangan menjadi rentetan yang dipisahkan koma untuk setiap hidangan. Simpan ini dalam lajur dish_id.
  3. Begitu juga, gunakan GROUP_CONCAT(dish_name) untuk menggabungkan nama hidangan menjadi rentetan yang dipisahkan koma dan simpan dalam lajur dish_names.
  4. KUMPULAN MENGIKUT meal_Id memastikan bahawa keputusan dikumpulkan mengikut ID makanan, menghasilkan satu baris untuk setiap satu hidangan.

Pertanyaan ini harus menghasilkan format output yang diingini:

meal_id dish_ids dish_names
1 2,3,4 dish_2, dish_3, dish_4

Atas ialah kandungan terperinci Bagaimana untuk Mengambil Berbilang Baris sebagai Baris Dipisahkan Koma Tunggal dalam 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan