以Mysql5.7为例.
group_concat属于聚合函数的一种.group_concat是返回结果集合用”,”
拼接,如果为空值返回null.语法1
2
3
4
5GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | expr}
[ASC | DESC] [,col_name ...]]
[SEPARATOR str_val])示例查看所有数据1SELECT * FROM sys_user;id uname age1 a (NULL)
2 a (NULL)
3 b (NULL)
4 d (NULL)
5 c (NULL)
6 e (NULL)
7 g (NULL)
8 f (NULL)
9 f (NULL)将用户名拼接返回1SELECT GROUP_CONCAT(uname) FROM sys_user ;
group_concat(uname)
a,a,b,d,c,e,g,f,f
3.用户名去重后拼接排序1SELECT GROUP_CONCAT(DISTINCT uname ORDER BY uname ASC) FROM sys_user ;
GROUP_CONCAT(distinct uname order by uname ASC)
a,b,c,d,e,f,g用户名用指定连接符拼接1SELECT GROUP_CONCAT(DISTINCT uname ORDER BY uname SEPARATOR '|') FROM sys_user ;
GROUP_CONCAT(DISTINCT uname ORDER BY uname SEPARATOR ‘|’)
a|b|c|d|e|f|g注意
group_concat默认长度为1024,如果长度超过默认长度会截取返回。根据业务需要,更改长度即可.1SET [GLOBAL | SESSION] group_concat_max_len = val;
返回值是非二进制或二进制字符串,具体取决于参数是非二进制还是二进制字符串。
结果类型为TEXT或BLOB,除非group_concat_max_len小于或等于512,在这种情况下,结果类型为VARCHAR或VARBINARY.