Group_concat函数的使用和讲解

语法:

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最小值,第三个也是一样的道理

你可能感兴趣的:(数据库,sql)