MySQL将查询结果用英文逗号,连接的实现方式!
MySQL将查询结果用英文逗号,连接的实现方式!
作者:XerCis
这篇文章主要介绍了MySQL将查询结果用英文逗号,连接的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教。
问题描述
1
2
3
4
5
6
7
8
9
10
11
12
13
|
-- 创建表 CREATE TABLE `person` ( `id` int (11) NOT NULL AUTO_INCREMENT COMMENT '用户ID' , ` name ` varchar (255) NOT NULL COMMENT '用户名' , PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; -- 插入数据 INSERT INTO `person` VALUES (1, '刘一' ); INSERT INTO `person` VALUES (2, '陈二' ); INSERT INTO `person` VALUES (3, '张三' ); INSERT INTO `person` VALUES (4, '李四' ); INSERT INTO `person` VALUES (5, '王五' ); |
解决方案
- GROUP_CONCAT(expr):返回连接的非 null 值字符串
1
|
SELECT GROUP_CONCAT(你的字段) FROM 你的表 |
- 如:
1
|
SELECT GROUP_CONCAT( name ) FROM person |
- 效果:
- 封装:
1
2
3
4
|
SELECT GROUP_CONCAT(x) FROM ( SELECT x FROM x WHERE GROUP BY x) AS a |
遇到的坑
结果太长,显示不全
- group_concat_max_len连接结果的最大长度默认为 1024 ,64 位系统最大为 18446744073709551615
- 可以临时设置:
1
2
3
4
5
6
7
8
|
# 默认为 1KB SET SESSION group_concat_max_len = 1024; # 1MB SET SESSION group_concat_max_len = 1048576; # 10MB SET SESSION group_concat_max_len = 10485760; # 1GB SET SESSION group_concat_max_len = 1073741824; |
总结
以上为个人经验,希望能给大家一个参考。
学习资料见知识星球。
以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。
快来试试吧,小琥 my21ke007。获取 1000个免费 Excel模板福利!
更多技巧, www.excelbook.cn
欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;
1、价值上万元的专业的PPT报告模板。
2、专业案例分析和解读笔记。
3、实用的Excel、Word、PPT技巧。
4、VIP讨论群,共享资源。
5、优惠的会员商品。
6、一次付费只需129元,即可下载本站文章涉及的文件和软件。