如何在 MySQL 中获取多行作为单个逗号分隔行?

DDD
发布: 2024-11-14 13:49:02
原创
388 人浏览过

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

在 MySQL 中获取多行作为单个逗号分隔行

问题陈述:

你有两个表, “DISH”和“DISH_HAS_DISHES”,其中菜肴与一对多相关依赖性。目标是以特定格式从两个表中检索数据:每顿饭的菜肴 ID 和名称的逗号分隔列表。

使用 GROUP_CONCAT 函数建议的解决方案:

MySQL提供了GROUP_CONCAT函数,该函数允许根据指定的分隔符连接多行。利用此函数,您可以实现所需的输出:

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
登录后复制

解释:

  1. JOIN "DISH_HAS_DISHES" (m) 和 "DISH" ( d) 基于公共dish_id字段的表。
  2. 使用GROUP_CONCAT(dish_id) 将每顿饭的菜肴 ID 连接成逗号分隔的字符串。将其存储在dish_ids列中。
  3. 类似地,使用GROUP_CONCAT(dish_name)将菜肴名称连接成逗号分隔的字符串并将其存储在dish_names列中。
  4. GROUP BYmeal_Id确保结果按餐 ID 分组,每个餐食占一行餐。

此查询应产生所需的输出格式:

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

以上是如何在 MySQL 中获取多行作为单个逗号分隔行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板