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

MySQL如何将同订单的多个产品合并到同一单元格?

你完全可以使用GROUP_CONCAT函数完成该需求,以下是不同数据库环境下的实现方案:

MySQL / MariaDB 环境(原生支持GROUP_CONCAT)

直接执行以下SQL即可得到你要的输出结果:

SELECT
  id_order,
  GROUP_CONCAT(products SEPARATOR ', ') AS products
FROM Orders
GROUP BY id_order;

说明:GROUP_CONCAT默认分隔符为英文逗号,你需要的逗号加空格格式,通过SEPARATOR ', '指定即可。如果合并的内容长度超出默认限制,可以执行SET SESSION group_concat_max_len = 102400;临时调大长度阈值。

其他数据库环境的对应实现

如果使用的不是MySQL生态的数据库,可以用对应数据库的字符串拼接聚合函数实现相同效果:

  • PostgreSQL / SQL Server:使用STRING_AGG函数
SELECT
  id_order,
  STRING_AGG(products, ', ') AS products
FROM Orders
GROUP BY id_order;
  • Oracle:使用LISTAGG函数
SELECT
  id_order,
  LISTAGG(products, ', ') WITHIN GROUP (ORDER BY products) AS products
FROM Orders
GROUP BY id_order;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 15:06:03