1. 概述
在mysql中,除了简单的聚合函数,例如count、sum、min、max、avg外,还有一个函数group_concat(),实现行的合并
group_concat()函数经常和group by一起使用,函数根据group by指定的列进行分组,并且用分隔符分割,将同一个分组中的值连接起来,返回一个字符串。
2. 使用语法
group_concat([distinct] 字段名 [order by 排序字段 asc/desc] [separator '分隔符'])
- distinct:可以排除重复值
- order by:对结果中的值进行排序
- separator:分隔符
假设有一张员工表,内容如下:
示例1:将所有员工的名字合并成一行
select group_concat(emp_name) from emp;
结果如下:
示例2:对部门分组,同时把每个部门的员工名字指定分隔符’;'连接起来
select department,group_concat(emp_name separator ';' ) as emps_name from emp group by department;
结果如下:
示例3:指定按照薪水排序和分隔符
select department,group_concat(emp_name order by salary desc separator ';' ) as emps_name from emp group by department;
结果如下: