MySQL中group_concat函数深入理解

时间:2024-01-14 23:31:34 

本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) 。
MySQL中group_concat函数
完整的语法如下:
group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
基本查询
mysql> 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字段的值打印在一行,逗号分隔(默认)
mysql> 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字段的值打印在一行,分号分隔
mysql> 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字段的值打印在一行,
逗号分隔
mysql> 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排倒序
mysql> 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)
使用group_concat_max_len系统变量,你可以设置允许的最大长度。 程序中进行这项操作的语法如下,其中 val 是一个无符号整数:
SET [SESSION | GLOBAL] group_concat_max_len = val;
若已经设置了最大长度, 则结果被截至这个最大长度。
将环境变量group_concat_max_len 增大。默认是1024.我就设置了session级的环境变量将其变为2048(不够用再加大)。解决该问题

标签:mysql,group,concat
0
投稿

猜你喜欢

  • 使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法

    2023-10-04 14:42:58
  • MySQL中or语句用法示例

    2024-01-17 17:21:46
  • 进一步理解Python中的函数编程

    2023-12-07 16:50:16
  • python中GIL的原理及用法总结

    2023-03-11 07:43:13
  • 用Python登录好友QQ空间点赞的示例代码

    2023-08-08 09:29:40
  • python文件操作之目录遍历实例分析

    2021-05-16 11:46:16
  • 向Oracle数据库的CLOB属性插入数据报字符串过长错误

    2023-07-23 11:11:06
  • Django模型层实现多表关系创建和多表操作

    2022-12-01 09:13:46
  • FrontPage 2002应用技巧四则

    2008-08-17 10:57:00
  • PHP扩展Swoole实现实时异步任务队列示例

    2023-11-10 05:11:22
  • 禁止背景图在网页中平铺

    2011-04-29 14:10:00
  • 30万条数据,搜索文本字段的各种方式对比

    2010-05-02 10:17:00
  • mysql 中如何取得汉字字段的各汉字首字母

    2024-01-12 20:08:57
  • MySQL实现SQL Server的sp_executesql

    2008-11-20 15:01:00
  • tensorflow自定义激活函数实例

    2023-04-18 09:11:51
  • MySQL字段类型说明

    2007-09-27 19:22:00
  • Python中shape计算矩阵的方法示例

    2022-04-09 20:34:06
  • PHP设计模式之模板方法模式Template Method Pattern详解

    2023-05-25 00:24:26
  • Python列表生成式与生成器操作示例

    2023-08-05 14:16:45
  • python中Switch/Case实现的示例代码

    2021-09-18 22:03:39
  • asp之家 网络编程 m.aspxhome.com