如何在mysql中使用GROUP_CONCAT聚合文本

2025-11-06 0 373

GROUP_CONCAT函数可将分组多行合并为单字符串,默认以逗号连接,支持自定义分隔符、去重和排序,如SELECT article_id, GROUP_CONCAT(tag SEPARATOR | ) FROM article_tags GROUP BY article_id; 并可通过SET SESSION group_concat_max_len调整长度限制以防截断。

如何在mysql中使用GROUP_CONCAT聚合文本

在MySQL中,GROUP_CONCAT 是一个非常实用的聚合函数,它可以将分组中的多行文本合并成一个字符串。当你需要将某个字段的多个值拼接在一起时,比如把一个用户的所有标签、订单项或类别连成一行显示,这个函数就特别有用。

基本语法

GROUP_CONCAT(expression SEPARATOR separator)

expression:要拼接的字段或表达式 SEPARATOR:指定连接符,默认是逗号 ,

例如,有一个文章标签表:

复制AI写代码

1

2

3

4

5

6

article_id | tag

———–|——–

1          | MySQL

1          | Database

2          | Python

2          | Web

登录后复制

你想按文章ID汇总所有标签:

SELECT article_id, GROUP_CONCAT(tag) AS tags

FROM article_tags

GROUP BY article_id;

结果会是:

复制AI写代码

1

2

3

4

article_id | tags

———–|——————-

1          | MySQL,Database

2          | Python,Web

登录后复制

自定义分隔符

你可以使用 SEPARATOR 指定其他连接符号:

SELECT article_id, GROUP_CONCAT(tag SEPARATOR | ) AS tags

FROM article_tags

GROUP BY article_id;

输出:

如何在mysql中使用GROUP_CONCAT聚合文本
聚好用AI

可免费AI绘图、AI音乐、AI视频创作,聚集全球顶级AI,一站式创意平台

如何在mysql中使用GROUP_CONCAT聚合文本 115
查看详情 如何在mysql中使用GROUP_CONCAT聚合文本
复制AI写代码

1

2

1 | MySQL | Database

2 | Python | Web

登录后复制

去重与排序

如果数据中有重复值,可以用 DISTINCT 去重:

SELECT article_id, GROUP_CONCAT(DISTINCT tag ORDER BY tag) AS tags

FROM article_tags

GROUP BY article_id; DISTINCT 避免重复标签 ORDER BY 控制拼接顺序

处理长文本截断问题

GROUP_CONCAT 有长度限制,默认是 1024 字符。如果拼接内容太长,会被截断。

可以通过设置系统变量来扩大上限:

SET SESSION group_concat_max_len = 10000;

建议在查询前设置,避免影响全局配置。

基本上就这些。GROUP_CONCAT 简单但强大,适合报表汇总、导出数据等场景,合理使用能让查询结果更直观。

以上就是如何在mysql中使用GROUP_CONCAT聚合文本的详细内容,更多请关注php中文网其它相关文章!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

遇见资源网 数据库 如何在mysql中使用GROUP_CONCAT聚合文本 https://www.ox520.com/3603.html

常见问题

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务