MySQL:將多行轉換為單一逗號分隔行
在MySQL 資料庫中,您可能會遇到這樣的情況:將會遇到這樣的情況:將會多行壓縮為一行,特定列表示為逗號分隔值。這可以透過利用 GROUP_CONCAT 函數來實現,如以下範例場景所示。
範例場景:
考慮兩個表格:DISH 和 DISH_HAS_DISHES,其中 DISH 保存所有可用的菜餚,DISH_HAS_DISHES 定義 DISH 之間的一對多關係。 DISH 表具有以下結構:
DISH: dish_id dish_name 1 dish_1 2 dish_2 3 dish_3 4 dish_4
而DISH_HAS_DISHES 表如下圖所示:
DISH_HAS_DISHES: meal_id dish_id 1 2 1 3 1 4
目標:
目標:meal_id dish_ids dish_names 1 2,3,4 dish_2, dish_3, dish_4
我們的目標是將資料轉換為每餐都有對應行的格式,列出其菜餚ID 和名稱:逗號分隔值。所需的輸出是:
解: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為了實現這一點,我們將使用GROUP_CONCAT 函數以及一些簡單的JOIN 操作:
以上是如何在 MySQL 中將多行合併為單一逗號分隔行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!