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(不够用再加大)。解决该问题
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
![](https://img.aspxhome.com/file/2023/1/115661_0s.jpg)
MySQL中or语句用法示例
进一步理解Python中的函数编程
python中GIL的原理及用法总结
用Python登录好友QQ空间点赞的示例代码
![](https://img.aspxhome.com/file/2023/8/101578_0s.png)
python文件操作之目录遍历实例分析
向Oracle数据库的CLOB属性插入数据报字符串过长错误
Django模型层实现多表关系创建和多表操作
FrontPage 2002应用技巧四则
PHP扩展Swoole实现实时异步任务队列示例
禁止背景图在网页中平铺
![](https://img.aspxhome.com/file/UploadPic/20072/2007231139890s.gif)
30万条数据,搜索文本字段的各种方式对比
mysql 中如何取得汉字字段的各汉字首字母
MySQL实现SQL Server的sp_executesql
tensorflow自定义激活函数实例
![](https://img.aspxhome.com/file/2023/3/100883_0s.jpg)