zoukankan      html  css  js  c++  java
  • mysql中的group_concat函数的用法

     1 本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) 。 
     2 MySQL中group_concat函数 
     3 完整的语法如下: 
     4 group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 
     5 基本查询 
     6 mysql> select * from aa; 
     7 +------+------+ 
     8 | id| name | 
     9 +------+------+ 
    10 |1 | 10| 
    11 |1 | 20| 
    12 |1 | 20| 
    13 |2 | 20| 
    14 |3 | 200 | 
    15 |3 | 500 | 
    16 +------+------+ 
    17 6 rows in set (0.00 sec) 
    18 以id分组,把name字段的值打印在一行,逗号分隔(默认) 
    19 mysql> select id,group_concat(name) from aa group by id; 
    20 +------+--------------------+ 
    21 | id| group_concat(name) | 
    22 +------+--------------------+ 
    23 |1 | 10,20,20| 
    24 |2 | 20 | 
    25 |3 | 200,500| 
    26 +------+--------------------+ 
    27 3 rows in set (0.00 sec) 
    28 以id分组,把name字段的值打印在一行,分号分隔 
    29 mysql> select id,group_concat(name separator ';') from aa group by id; 
    30 +------+----------------------------------+ 
    31 | id| group_concat(name separator ';') | 
    32 +------+----------------------------------+ 
    33 |1 | 10;20;20 | 
    34 |2 | 20| 
    35 |3 | 200;500 | 
    36 +------+----------------------------------+ 
    37 3 rows in set (0.00 sec) 
    38 以id分组,把去冗余的name字段的值打印在一行, 
    39 逗号分隔 
    40 mysql> select id,group_concat(distinct name) from aa group by id; 
    41 +------+-----------------------------+ 
    42 | id| group_concat(distinct name) | 
    43 +------+-----------------------------+ 
    44 |1 | 10,20| 
    45 |2 | 20 | 
    46 |3 | 200,500 | 
    47 +------+-----------------------------+ 
    48 3 rows in set (0.00 sec) 
    49 以id分组,把name字段的值打印在一行,逗号分隔,以name排倒序 
    50 mysql> select id,group_concat(name order by name desc) from aa group by id; 
    51 +------+---------------------------------------+ 
    52 | id| group_concat(name order by name desc) | 
    53 +------+---------------------------------------+ 
    54 |1 | 20,20,10 | 
    55 |2 | 20| 
    56 |3 | 500,200| 
    57 +------+---------------------------------------+ 
    58 3 rows in set (0.00 sec) 
    59 使用group_concat_max_len系统变量,你可以设置允许的最大长度。 程序中进行这项操作的语法如下,其中 val 是一个无符号整数: 
    60 SET [SESSION | GLOBAL] group_concat_max_len = val; 
    61 若已经设置了最大长度, 则结果被截至这个最大长度。 
    62 将环境变量group_concat_max_len 增大。默认是1024.我就设置了session级的环境变量将其变为2048(不够用再加大)
  • 相关阅读:
    Linux内核网络协议栈优化总纲
    Java实现 蓝桥杯VIP 算法训练 连续正整数的和
    Java实现 蓝桥杯VIP 算法训练 连续正整数的和
    Java实现 蓝桥杯VIP 算法训练 寂寞的数
    Java实现 蓝桥杯VIP 算法训练 寂寞的数
    Java实现 蓝桥杯VIP 算法训练 学做菜
    Java实现 蓝桥杯VIP 算法训练 学做菜
    Java实现 蓝桥杯VIP 算法训练 判断字符位置
    Java实现 蓝桥杯VIP 算法训练 判断字符位置
    Java实现 蓝桥杯VIP 算法训练 链表数据求和操作
  • 原文地址:https://www.cnblogs.com/huzi007/p/4670715.html
Copyright © 2011-2022 走看看