日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

group_concat函數詳解

系統 3239 0

問了好多人,都不知道group_concat這個函數。

?

這個函數好啊,能將相同的行組合起來,省老事了。

?

MySQL中group_concat函數


完整的語法如下:


group_concat([DISTINCT] 要連接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])

?

基本查詢

      select * from aa; 


    

+------+------+
| id| name |
+------+------+
|1 | 10|
|1 | 20|
|1 | 20|
|2 | 20|
|3 | 200 |
|3 | 500 |
+------+------+
6 rows in set (0.00 sec)

?

以id分組,把name字段的值打印在一行,逗號分隔(默認)

      select id,group_concat(name) from aa group by id; 


    

+------+--------------------+
| id| group_concat(name) |
+------+--------------------+
|1 | 10,20,20|
|2 | 20 |
|3 | 200,500|
+------+--------------------+
3 rows in set (0.00 sec)

?

以id分組,把name字段的值打印在一行,分號分隔

      select id,group_concat(name separator ';') from aa group by id;  


    

+------+----------------------------------+
| id| group_concat(name separator ';') |
+------+----------------------------------+
|1 | 10;20;20 |
|2 | 20|
|3 | 200;500 |
+------+----------------------------------+
3 rows in set (0.00 sec)

?

以id分組,把去冗余的name字段的值打印在一行,


逗號分隔

      select id,group_concat(distinct name) from aa group by id;  


    

+------+-----------------------------+
| id| group_concat(distinct name) |
+------+-----------------------------+
|1 | 10,20|
|2 | 20 |
|3 | 200,500 |
+------+-----------------------------+
3 rows in set (0.00 sec)

?

以id分組,把name字段的值打印在一行,逗號分隔,以name排倒序

      select id,group_concat(name order by name desc) from aa group by id;  


    

+------+---------------------------------------+
| id| group_concat(name order by name desc) |
+------+---------------------------------------+
|1 | 20,20,10 |
|2 | 20|
|3 | 500,200|
+------+---------------------------------------+
3 rows in set (0.00 sec)

?

測試sql,項目中用到的。

      
        SELECT
      
      
        

        EMPLOYEES.EMPID

        ,EMPLOYEES.EMPNAME

        ,DEPARTMENTS.DEPARTMENTNAME

        ,EMPLOYEES.DEPTID

        ,EMPLOYEES.EMPPWD

        ,EMPLOYEES.INSIDEEMAIL

        ,EMPLOYEES.OUTSIDEEMAIL

        ,EMPLOYEES.DELEFLAG

        ,EMPLOYEES.EMPCLASS

        ,(CONCAT(
      
      
        '
      
      
        [
      
      
        '
      
      , 
      
        <
      
      span style
      
        =
      
      "color: #ff0000;"
      
        >
      
      GROUP_CONCAT
      
        </
      
      span
      
        >
      
      
        

(ROLE.Role_Name SEPARATOR 
      
      
        '
      
      
        ],[
      
      
        '
      
      ), 
      
        '
      
      
        ]
      
      
        '
      
      )) 
      
        AS
      
      
         ROLENAME

        ,(concat( 
      
      
        '
      
      
        [
      
      
        '
      
      
        , (

            
      
      
        SELECT
      
      
        <
      
      span style
      
        =
      
      "color: #ff0000;"
      
        >
      
      GROUP_CONCAT
      
        </
      
      span
      
        >
      
      
        

(DEPARTMENTS.DEPARTMENTNAME separator 
      
      
        '
      
      
        ],[
      
      
        '
      
      
        )

                
      
      
        FROM
      
      
        

                    EMP_ROLE_DEPT

                        
      
      
        LEFT
      
      
        JOIN
      
      
         DEPARTMENTS

                            
      
      
        ON
      
      
         (

                                DEPARTMENTS.DEPARTMENTID 
      
      
        =
      
      
         EMP_ROLE_DEPT.DEPTID

                                
      
      
        AND
      
       DEPARTMENTS.DELEFLAG 
      
        =
      
      
        0
      
      
        

                            )

                
      
      
        GROUP
      
      
        BY
      
      
        

                    EMP_ROLE_DEPT.EMPID

                
      
      
        HAVING
      
      
        

                    EMP_ROLE_DEPT.EMPID 
      
      
        =
      
      
         EMPLOYEES.EMPID

        ),
      
      
        '
      
      
        ]
      
      
        '
      
      )) 
      
        AS
      
      
         DEPARTMENTRIGHT

    
      
      
        FROM
      
      
        

        EMPLOYEES

            
      
      
        LEFT
      
      
        JOIN
      
      
         DEPARTMENTS

                
      
      
        ON
      
      
         (

                    DEPARTMENTS.DEPARTMENTID 
      
      
        =
      
      
         EMPLOYEES.DEPTID

                    
      
      
        AND
      
       DEPARTMENTS.DELEFLAG 
      
        =
      
      
        0
      
      
        

                )

            
      
      
        LEFT
      
      
        JOIN
      
      
         ROLE_EMP

                
      
      
        ON
      
       (ROLE_EMP.EMP_ID 
      
        =
      
      
         EMPLOYEES.EMPID)

            
      
      
        LEFT
      
      
        JOIN
      
      
         ROLE

                
      
      
        ON
      
       (ROLE_EMP.ROLE_ID 
      
        =
      
      
         ROLE.ROLE_ID)


      
      
        <
      
      span style
      
        =
      
      "color: #ff0000;"
      
        >
      
      
        GROUP
      
      
        BY
      
      
        

        EMPLOYEES.EMPID
      
      
        </
      
      span
      
        >
      
      
        HAVING
      
      
        

        EMPLOYEES.EMPID 
      
      
        LIKE
      
      
        '
      
      
        %%
      
      
        '
      
      
        AND
      
       EMPLOYEES.EMPNAME 
      
        LIKE
      
      
        '
      
      
        %%
      
      
        '
      
      
        AND
      
       EMPLOYEES.DELEFLAG 
      
        =
      
      
        0
      
      
        AND
      
      
         (

            EMPLOYEES.EMPCLASS 
      
      
        =
      
      
        '
      
      
        1
      
      
        '
      
      
        OR
      
       EMPLOYEES.EMPCLASS 
      
        =
      
      
        '
      
      
        2
      
      
        '
      
      
        

        )

        
      
      
        AND
      
       EMPLOYEES.DEPTID 
      
        =
      
      
        '
      
      
        001
      
      
        '
      
       LIMIT 
      
        0
      
      
        

        ,
      
      
        16
      
    

?

group_concat函數詳解


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 屏东市| 华池县| 团风县| 高陵县| 仁怀市| 长沙县| 武冈市| 聂荣县| 宁陕县| 南开区| 寿阳县| 新巴尔虎左旗| 吉首市| 翁牛特旗| 陇南市| 河曲县| 永康市| 南岸区| 伽师县| 南靖县| 巴南区| 阿坝县| 客服| 高淳县| 建始县| 基隆市| 社会| 讷河市| 霍林郭勒市| 逊克县| 泰来县| 化隆| 竹北市| 南澳县| 太谷县| 京山县| 兴化市| 云浮市| 道真| 资兴市| 沧源|