今天有个需求需要将mysql查询结果进行聚合,搜了一下,返现还真有将group by后的结果进行聚合的函数:
GROUP_CONCAT,这个函数很强大,直接可以吧group by后的结果拼接成一个长字符串,默认用“,”分割,
比如表hero_item 里有vlogId字段和heroId字段,如果先聚合所有heroId对应的vlogId,可以这样写:
SELECT heroId, COUNT(DISTINCT vlogId) as size, GROUP_CONCAT(DISTINCT vlogId) as vlogids FROM hero_vedio_item GROUP BY heroId
查询结果如下:
heroId size vlogIds
1 15 1223,124,343434,12323,.......
这样做是不是少了很多我们原来需要在java或者php中再次进行解析的工作了呢?