MySQL: Menukar Berbilang Baris menjadi Baris Dipisahkan Koma Tunggal
Dalam pangkalan data MySQL, anda mungkin menghadapi situasi di mana anda mahu memekatkan berbilang baris menjadi satu baris, dengan lajur tertentu diwakili sebagai nilai dipisahkan koma. Ini boleh dicapai dengan menggunakan fungsi GROUP_CONCAT, seperti yang ditunjukkan dalam contoh senario berikut.
Contoh Senario:
Pertimbangkan dua jadual: DISH dan DISH_HAS_DISHES, tempat DISH memegang semua hidangan yang tersedia dan DISH_HAS_DISHES mentakrifkan hubungan satu-ke-banyak antara DISH. Jadual DISH mempunyai struktur berikut:
DISH: dish_id dish_name 1 dish_1 2 dish_2 3 dish_3 4 dish_4
Manakala jadual DISH_HAS_DISHES kelihatan seperti ini:
DISH_HAS_DISHES: meal_id dish_id 1 2 1 3 1 4
Objektif:
Matlamat kami adalah untuk mengubah data menjadi format di mana setiap hidangan mempunyai baris yang sepadan, menyenaraikan ID dan nama hidangannya sebagai nilai dipisahkan koma. Output yang dikehendaki ialah:
meal_id dish_ids dish_names 1 2,3,4 dish_2, dish_3, dish_4
Penyelesaian:
Untuk mencapai ini, kami akan menggunakan fungsi GROUP_CONCAT, bersama-sama dengan beberapa operasi JOIN yang mudah:
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
Dalam pertanyaan ini:
Dengan melaksanakan pertanyaan ini, kami akan memperoleh output yang diingini, di mana setiap baris mewakili hidangan, ID hidangannya dan nama hidangannya yang sepadan, semuanya diwakili sebagai nilai dipisahkan koma. Teknik ini amat berguna apabila bekerja dengan data jadual dan menyatukan maklumat merentas berbilang baris.
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Berbilang Baris ke dalam Baris Dipisahkan Koma Tunggal dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!