MySQL中group_concat作用的深刻认识
本文介绍了在MySQL group_concat函数的使用,如选择group_concat(名称),通过一个实例。在MySQL group_concat功能
完整的语法如下所示:
group_concat({ } {明显以ASC或DESC连接领域排序字段分隔符} {分离器)
基本的查询
从AA选择*;
+ + +
我|名字| |
+ + +
| 1 10 | |
| 1 20 | |
| 1 20 | |
| 2 20 | |
| 3 | 200 |
| 3 | 500 |
+ + +
6行(0秒)
在id组中,name字段的值打印在一行上,逗号分隔(默认)。
MySQL >选择ID,group_concat(名称)从AA组ID;
------ -------------------- + + +
| ID | group_concat(名字)|
------ -------------------- + + +
| 1 10,20,20 | |
| 2 | 20 |
| 3 200500 | |
------ -------------------- + + +
3行(0秒)
在id组中,name字段的值以单行形式打印,用分号分隔。
MySQL >选择ID,group_concat(名称分隔符;)从AA组ID;
------ ---------------------------------- + + +
| ID | group_concat(名称分隔符;|)
------ ---------------------------------- + + +
| 1 | 10;20;20 |
| 2 20 | |
| 3 | 200;500 |
------ ---------------------------------- + + +
3行(0秒)
通过分组id,冗余名称字段的值被打印在一行上。
CSV
MySQL >选择ID,group_concat(不同的名字)从AA组ID;
------ ----------------------------- + + +
| ID | group_concat(不同的名字)|
------ ----------------------------- + + +
1、| | |
| 2 | 20 |
| 3 | 200500 |
------ ----------------------------- + + +
3行(0秒)
在id组中,name字段打印的值将行、行中的逗号分隔成名称。
MySQL >选择ID,group_concat(名字和名字的顺序)从AA组。
------ --------------------------------------- + + +
| ID | group_concat(名字和名字的顺序)|
------ --------------------------------------- + + +
| 1 20,20,10 | |
| 2 20 | |
| 3 500200 | |
------ --------------------------------------- + + +
3行(0秒)
与group_concat_max_len系统变量,你可以设置允许的最大长度。此操作的语法如下,val是一个无符号整数:
设置会话| {全球} group_concat_max_len = val;
如果设置了最大长度,则结果达到最大长度。
增加环境变量group_concat_max_len.the默认是1024,我设置会话级别的环境变量来改变2048(不足以增加解决问题)。