本文通过实例介绍了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函数深入理解
2019-12-10 15:01MYSQL教程网 Mysql
本文通过实例介绍了MySQL中的group_concat函数的使用方法,需要的朋友可以适当参考下
延伸 · 阅读
- 2019-12-10mysql中int、bigint、smallint 和 tinyint的区别详细介绍
- 2019-12-10mysql 模糊搜索的方法介绍
- 2019-12-10远程连接mysql 授权方法详解
- 2019-12-10mysql建库时提示Specified key was too long max key length
- 2019-12-10mysql的XA事务恢复过程详解
- 2019-12-10MySql数据引擎简介与选择方法
精彩推荐
- Mysql
MySQL与SQL的触发器的不同写法
当在SQL、MySQL数据库中一张表中插入一条记录时,触动触发器,使同一数据库的另一张表插入相同记录。 ...
- Mysql
mysql 数据库设计
大家都知道mysql的myisam表适合读操作大,写操作少;表级锁表 ...
- Mysql
MySQL对于各种锁的概念理解
今天小编就为大家分享一篇关于MySQL对于各种锁的概念理解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来...
- Mysql
mysql5.7.23版本安装教程及配置方法
这篇文章主要介绍了mysql5.7.23版本安装教程及配置方法,需要的朋友可以参考下...
- Mysql
定时备份 Mysql并上传到七牛的方法
常见的 MySQL 数据备份方式有,直接打包复制对应的数据库或表文件(物理备份)、mysqldump 全量逻辑备份、xtrabackup 增量逻辑备份等。这篇文章主要介绍了定时...
- Mysql
mysql SQL语句积累
mysql SQL语句积累,学习mysql的朋友可以参考下。 ...
- Mysql
MySQL8下忘记密码后重置密码的办法(MySQL老方法不灵了)
这篇文章主要介绍了MySQL8下忘记密码后重置密码的办法,MySQL的密码是存放在user表里面的,修改密码其实就是修改表中记录,重置的思路是是想办法不用密码...
- Mysql
mysql 读写分离(基础篇)
MySQL Proxy最强大的一项功能是实现“读写分离(Read/Write Splitting)”。 ...