作用
group_concat函数,连接字段,多个值显示为一行。
如下效果,图一中的多行值变换成图二的一行显示形式。
图一
图二
注意:使用 GROUP_CONCAT()函数必须对源数据进行分组,否则所有数据会被合并成一行
语法
group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符’])
- 排序效果
- 分割效果 : SEPARATOR
以逗号最为默认的连接字符
- 可以使用 DISTINCT 过滤重复的值
SELECT GROUP_CONCAT( DISTINCT a.REGION_ID ORDER BY a.REGION_ID DESC SEPARATOR ' ')
FROM t_region a;
- 最大值限制
GROUP_CONCAT() 是有最大长度限制的,默认值是 1024。
可以通过 group_concat_max_len 参数进行动态设置。参数范围可以是 Global 或 Session。
设置语法如下:
使用默认值的情况,当总长度达到 1024 后,后面的记录就被截断掉。
group_concat_max_len 设置为最大值:
值是无符号整型,最大值与版本位数有关:
SET SESSION group_concat_max_len=18446744073709551615;
SET SESSION group_concat_max_len=4294967295;
over~~~