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

如何按ID分组并按sequence排序拼接MySQL多行文本内容?

解决按ID分组拼接有序文本的问题

嘿,这个问题我熟!先把你的原始数据整理成清晰的Markdown表格方便理解:

idsequencetext
1234501Hello, my
1234502name is CJ
5432101Good morn
5432102ing! Sup!

你的需求很明确:按id分组,把同一ID下的text字段按照sequence的顺序拼接成完整的消息。不同数据库的实现函数略有差异,我给你几个主流数据库的解决方案:

1. MySQL/MariaDB 方案

使用GROUP_CONCAT函数,记得在函数内指定排序规则:

SELECT 
    id,
    GROUP_CONCAT(text ORDER BY sequence ASC SEPARATOR '') AS full_message
FROM your_table_name
GROUP BY id;

2. PostgreSQL 方案

用STRING_AGG函数,直接在函数内指定排序:

SELECT 
    id,
    STRING_AGG(text, '' ORDER BY sequence ASC) AS full_message
FROM your_table_name
GROUP BY id;

3. SQL Server(2017及以上版本)方案

同样支持STRING_AGG,语法稍有不同:

SELECT 
    id,
    STRING_AGG(text, '') WITHIN GROUP (ORDER BY sequence ASC) AS full_message
FROM your_table_name
GROUP BY id;

4. Oracle(11gR2及以上版本)方案

使用LISTAGG函数实现:

SELECT 
    id,
    LISTAGG(text, '') WITHIN GROUP (ORDER BY sequence ASC) AS full_message
FROM your_table_name
GROUP BY id;

执行以上对应数据库的查询后,你会得到预期的结果:

idfull_message
12345Hello, my name is CJ
54321Good morning! Sup!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:01:29