Mysql函数group_concat()函数
GROUP_CONCAT(expr)
该函数将非空列值按照分组条件进行合并并最终返回。如果有空值,则返回为空,其完整语法如下:
GROUP_CONCAT([DISTINCT] expr
[,expr
...]
[ORDER BY {unsigned_integer
| col_name
| expr
}
[ASC | DESC] [,col_name
...]]
[SEPARATOR str_val
])
举例 列1:
SELECT EMP_ID, SUM(VALUE1), SUM(VALUE2), SUM(VALUE3), GROUP_CONCAT(REAS_1 SEPARATOR ‘;‘), GROUP_CONCAT(REAS_2), GROUP_CONCAT(REAS_3) FROM ACT_GP_TEST GROUP BY EMP_ID
列2:
SELECT EMP_ID, SUM(VALUE1), SUM(VALUE2), SUM(VALUE3), GROUP_CONCAT(REAS_1,REAS_2,REAS_3 SEPARATOR ‘;‘) FROM ACT_GP_TEST GROUP BY EMP_ID
上面列1和列2的区别在于,列2是将字段REAS_1,REAS_2,REAS_3作为一个完整的字段逐条合并。
该函数的最大长度收到环境变量group_concat_max_len的限定,其默认值为1024,当然可以设置的更高。同时有效的最大返回长度也受
max_allowed_packet的约束。
在运行是修改group_concat_max_len
的语法如下:
SET [GLOBAL | SESSION] group_concat_max_len = val;
返回的结果是二进制还是非二进制字符,取决于函数内取值字段的本身。一般当
group_concat_max_len
<=512时,为VARCHAR或VARBINARY,当大于该值时为TEXT和BLOB。
本文出自 “LinuxOracle” 博客,请务必保留此出处http://onlinekof2001.blog.51cto.com/3106724/1642082
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。