Mysql函數group_concat()函數

GROUP_CONCAT(expr)bash

該函數將非空列值按照分組條件進行合併並最終返回。若是有空值,則返回爲空,其完整語法以下:ide

GROUP_CONCAT([DISTINCT] expr [,expr ...]函數

            [ORDER BY {unsigned_integer | col_name | expr}spa

                [ASC | DESC] [,col_name ...]]code

            [SEPARATOR str_val])it

舉例 列1:io

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:
class

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。

相關文章
相關標籤/搜索