适用于分组统计, 将想要的多行的某个字段, 合并到一个记录行里面. 比如我想统计下Student表里面每个班级的学生姓名:
create table student(
`name` VARCHAR(32),
`class` VARCHAR(32)
);
insert into student values ("张1","小班"),("张2","小班"),("张3","小班"),("张4","中班"),("张5","中班"),("张6","大班"),("张7","大班"),("张8","大一");
select `class`, GROUP_CONCAT(`name`) from student group by `class`
还可以在括号里面使用排序和设置拼接连接符
select `class`, GROUP_CONCAT(`name` order by `name` desc SEPARATOR '-') from student group by `class`
CONCAT函数中要连接的数据含有NULL时,最后返回的是NULL,但是GROUP_CONCAT不会这样,他会忽略NULL值。