mysql中用group_concat把selct中的数据列表转换成逗号分隔的字符串
登录mysql,在test数据库中建立一个表:
CREATE TABLE `shoufei` ( `id` int(11) NOT NULL AUTO_INCREMENT, `shijian` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `xiangmu` varchar(20) NOT NULL, `jiage` float NOT NULL, `shuliang` int(11) NOT NULL, `jine` float DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8
在表shoufei增加数据:
在表中,查询xiangmu字段,在查询结果组成一个字符串:
SELECT GROUP_CONCAT(xiangmu) FROM shoufei;
在字符串有重复的值,把重复的值过滤
SELECT GROUP_CONCAT(DISTINCT shuliang) FROM shoufei;
在查询项目组成的字符串时,定义间隔符号
SELECT GROUP_CONCAT(xiangmu SEPARATOR '-') FROM shoufei;
把字符串的字段的值升序排序(asc ,desc):
SELECT GROUP_CONCAT(xiangmu ORDER BY xiangmu ASC SEPARATOR '-') FROM shoufei;
注意:
group_concat字符串的长度字节超过1024 则会被截断,可以通过命令 "show variables like 'group_concat_max_len' " 来查看group_concat 默认的长度。
设置group_concat长度的操作方法:
(1)在MySQL配置文件中加入:
group_concat_max_len = 102400
(2)更简单的操作方法,执行SQL语句:
SET GLOBAL group_concat_max_len = 102400;
SET SESSION group_concat_max_len = 102400;
注意:该方法缺点是重启服务后设置失效。
本文转自:https://jingyan.baidu.com/album/29697b91478e91ab20de3c9d.html?picindex=1
分类:
mysql
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?