在MySQL 中將多行轉換為具有逗號分隔值的單行的挑戰經常出現當處理來自多個表的相關數據時。利用強大的 GROUP_CONCAT 函數可以優雅地完成此任務。
要實現此目標,請考慮提供的範例。 DISH 和 DISH_HAS_DISHES 兩個表表示菜餚和餐點之間的一對多關係。要求是建立一種格式,將每餐的菜餚 ID 和名稱整理為逗號分隔值。
解在於 GROUP_CONCAT 函數。此函數有效地連接每組行的表達式值,產生單一字串。在這種情況下,表達式是dish_id和dish_name屬性的組合。
要轉換數據,可以建構連接DISH_HAS_DISHES和DISH表的查詢:
JOIN語句連結兩個表,而 GROUP BY 按 meal_id 列對行進行分組。對於每頓飯,GROUP_CONCAT 函數將dish_id 和dish_name 值分別聚合到dish_ids 和dish_names 欄位中,並以逗號分隔。
因此,查詢會產生所需的格式:每餐為一行,其中以逗號分隔的菜餚 ID 和名稱。利用 GROUP_CONCAT 函數可以有效解決在 MySQL 中使用逗號分隔值將多行提取為單行的挑戰。此外,這種方法可以應用於各種資料庫場景,增強資料檢索和操作能力。
以上是在 MySQL 中,如何使用 GROUP_CONCAT 將多行合併為一行並以逗號分隔值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!