分组时遇见集合处理
group by + group_concat()
1.group_concat(字段名)可以作为一个输出的字段来使用
2.表示分组之后,根据分组结果,使用group_concat()来放置每一组的某字段的值的集合
列出一些数据
select * from user GROUP BY sex
根据sex字段来分组,sex字段的值只有两个值(男、女),所以分为两组
当group by 单独使用时,只显示出每组的第一条记录
所以group by 单独使用时的实际意义并不大
select sex,GROUP_CONCAT(name) from user GROUP BY sex
group by + with rollup
1.with rollup 的作用是:在最后新增一行,来记录当前列里所有记录的总和
select sex,count(age) from user GROUP BY sex with rollup
以上为一星期前所写
今天想到一个取group_concat之中的一个第一个(即第一个逗号前的进行截取)
只需要在你的group_concat() 语句前加substring_index(group_concat(),',',1)
同样还可把“,”换成“;” 需要在group_concat()语句中加入group_concat(字段名 SEPARATOR ';'
) 字段名后加入一个空格
同样还可以排序group_concat(字段名 order by 字段 asc,字段 desc)