You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GROUP_CONCAT多列无逗号分隔:新旧服务器输出差异,求解决方案

解决GROUP_CONCAT拼接列时缺失逗号的问题

嗨,这个问题其实很好解决——你现在的写法是直接把三个字段丢进GROUP_CONCAT里,MySQL会直接把它们的值连在一起,不会自动加逗号。旧服务器的输出之所以有逗号,肯定是当时的写法里明确加了分隔符,只是你没注意到而已。

直接修改你的SQL语句,在每个字段之间手动加上逗号就行:

SELECT GROUP_CONCAT(start, ',', end, ',', flag SEPARATOR ';') FROM time;

为啥原来的写法不行?

当你写GROUP_CONCAT(start, end, flag SEPARATOR ';')时,SEPARATOR ';'只是用来分隔不同行的拼接结果,而同一行里的三个字段是直接拼接的,没有任何分隔符。这就是你现在看到列之间连在一起的原因。

更清晰的写法(可选)

如果字段比较多,怕写乱,也可以先用CONCAT把单条记录的三个字段先拼成带逗号的字符串,再用GROUP_CONCAT汇总:

SELECT GROUP_CONCAT(CONCAT(start, ',', end, ',', flag) SEPARATOR ';') FROM time;

这两种写法都能完美还原你需要的旧格式:1553169646,1553177094,End Time;1553177948,1553177962,End Time;1553177956,1553177960,End Lunch

至于配置差异的可能性其实很低,毕竟MySQL默认不会给多字段拼接自动加逗号,最直接有效的办法就是手动显式添加分隔符。

内容的提问来源于stack exchange,提问作者fallco shkoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:58:34