《MysqL教程MysqL中group_concat函数深入理解》要点:
本文介绍了MysqL教程MysqL中group_concat函数深入理解,希望对您有用。如果有疑问,可以联系我们。
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分组,分号分隔
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,500 |
+------+-----------------------------+
3 rows in set (0.00 sec)
以ID分组,逗号分隔,以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,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教程MySQL中group_concat函数深入理解全部内容,希望文章能够帮你解决MYSQL教程MySQL中group_concat函数深入理解所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)