GROUP_CONCAT聚合拼接
将分组内的多行值合并为一个字符串,常用于报表和列表生成。 · 难度:入门 · +15XP
SQL GROUP_CONCAT —— 把多行合并成一行
GROUP_CONCAT是MySQL特有的聚合函数,将分组内的多个值拼接成一个字符串。常用来做标签聚合、多值展示等。
基本用法
-- 每个学生的所有课程合并显示
SELECT
student_name,
GROUP_CONCAT(course_name) AS 所选课程
FROM enrollments
GROUP BY student_name;
-- 结果:张三 | 数学,英语,物理
完整参数
GROUP_CONCAT(
DISTINCT column -- 去重
ORDER BY column ASC/DESC -- 排序
SEPARATOR ', ' -- 分隔符
)
SELECT
class_id,
GROUP_CONCAT(DISTINCT student_name ORDER BY student_name SEPARATOR '、')
AS 学生名单
FROM enrollments GROUP BY class_id;
动手练习
- 基础练习:查询每个班级的学生名单,用顿号分隔。
- 进阶应用:用GROUP_CONCAT统计每个标签下的文章标题列表。
- 项目实战:注意GROUP_CONCAT默认最大长度1024字节,用group_concat_max_len调整。