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

MySQL 8.0(DBFiddle)中如何按分组合并字段值?

解决方案:使用MySQL原生的GROUP_CONCAT()函数

你之前尝试的STRING_AGG是SQL Server、PostgreSQL等数据库的专属函数,XML拼接也是SQL Server的实现逻辑,MySQL并不支持这些方法。在MySQL 8.0(包括DBFiddle上的运行环境)中,实现同组字符串聚合的正确方式是使用原生的GROUP_CONCAT()函数,完全能满足你的需求。

基础实现代码

假设你的表名为your_table,执行以下SQL即可得到目标结果:

SELECT 
    `标题1`,
    GROUP_CONCAT(`标题2` SEPARATOR ', ') AS `标题2`
FROM 
    your_table
GROUP BY 
    `标题1`;

可选优化:对合并内容排序

如果需要让合并后的标题2内容按字母顺序排列,可以添加ORDER BY子句:

SELECT 
    `标题1`,
    GROUP_CONCAT(`标题2` ORDER BY `标题2` SEPARATOR ', ') AS `标题2`
FROM 
    your_table
GROUP BY 
    `标题1`;

注意事项:处理超长字符串

GROUP_CONCAT默认有1024字节的长度限制,若合并后的字符串超出该长度会被截断。你可以通过会话级参数调整上限:

SET SESSION group_concat_max_len = 1000000; -- 设置为你需要的长度值

内容的提问来源于stack exchange,提问作者Alex Ferry

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 11:15:18