语法:
GROUP_CONCAT([DISTINCT] 要连接的字段 [ORDER BY 排序字段 ASC/DESC] [SEPARATOR '分隔符'])
解释:
GROUP_CONCAT函数用于将GROUP BY产生的同一个分组中的值连接起来,返回一个字符串结果
GROUP_CONCAT函数首先根据GROUP BY指定的列进行分组,将同一组的列显示出来,并且用分隔符分隔,由函数参数(字段名)决定要返回的列
说明:
(1) 使用DISTINCT可以排除重复值
(2) 如果需要对结果中的值进行排序,可以使用ORDER BY子句
(3) SEPARATOR '分隔符’是一个字符串值,默认为逗号
使用场景:
例如我们需要根据一个字段分组,然后取每个分组另一个字段的最大或者最小值
select group_concat(distinct product_id ORDER BY sort_id), min(id) ,min(img_url)from product_image group by product_id
//就是根据学生姓名进行分组,然后一个参数就是根据这个sort_id对每个分组进行排序,然后拼接在一起,因为使用了distinct,又因为本身使用了product_id进行了分组,所以每个分组product_id都是一样的,一去重就只剩下了一个product_id;那么第二个参数也就很简单了,就是取每个分组的的id最小值,第三个也是一样的道理