首页/数据/SQL 速查/GROUP_CONCAT 分组拼接(MySQL)
聚合与窗口函数54 条

GROUP_CONCAT 分组拼接(MySQL)

把组内值拼成一个字符串:支持 DISTINCT、排序与自定义分隔符;默认长度上限 1024 字节,超出会静默截断。

SQL 速查数据更新于 2026-10-12

示例

示例
SELECT user_id,
       GROUP_CONCAT(DISTINCT product_name
                    ORDER BY product_name
                    SEPARATOR ', ') AS products
FROM order_items
GROUP BY user_id;
语法GROUP_CONCAT([DISTINCT] expr [ORDER BY …] [SEPARATOR '…'])
默认分隔符英文逗号
长度上限group_concat_max_len 默认 1024 字节,可用 SET SESSION 调整
超过 group_concat_max_len 的结果会被截断且不报错,拼接长文本前先确认上限。

易错点

  • 截断是静默发生的,解析拼接结果的下游程序可能拿到不完整数据
  • 拼接结果列宽由 group_concat_max_len 决定,不是内容长度自适应,注意客户端显示与导出

数据来源与参考

  • MySQL 8.0 Reference Manual · GROUP_CONCAT
  • MySQL 8.0 Reference Manual · Server System Variables · group_concat_max_len
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌