mysql分组查询逗号拼接
时间: 2025-02-12 19:16:30 浏览: 44
### 使用 MySQL `GROUP_CONCAT` 进行分组查询并用逗号拼接
在 MySQL 中,`GROUP_CONCAT` 是一种非常有用的聚合函数,它允许将多行数据合并成单个字符串,并通过指定的分隔符来区分这些值。这特别适用于需要展示关联表中多项记录的情况。
#### 基本语法结构
```sql
SELECT column_name, GROUP_CONCAT(expression [ORDER BY sorting_expression] SEPARATOR 'delimiter') AS concatenated_result
FROM table_name
GROUP BY column_name;
```
此语句中的各个部分解释如下:
- **expression**: 要被连接起来的一列或多列。
- **ORDER BY (optional)**: 可选项,用来定义返回结果集中各项目间的顺序。
- **SEPARATOR (optional)**: 定义相邻项之间使用的分割字符;默认情况下为逗号 `,`[^1].
#### 实际应用案例
假设有一个名为 `students_courses` 的表格存储着学生及其所选课程的信息。为了获取每位学生的姓名以及他们各自注册的所有课程名称组成的列表,可以执行下面这条 SQL 查询命令:
```sql
SELECT s.name,
GROUP_CONCAT(sc.course ORDER BY sc.course SEPARATOR ', ') as enrolled_courses
FROM students s
JOIN student_courses sc ON s.id = sc.student_id
GROUP BY s.name;
```
这段代码会先按照名字对学生进行分组,再利用 `GROUP_CONCAT()` 将每名同学对应的课程按字母升序排列后以英文半角逗号加空格的形式组合在一起显示出来[^2].
阅读全文
相关推荐
















