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 是一个非常实用的聚合函数,它可以将分组中的多行文本合并成一个字符串。当你需要将某个字段的多个值拼接在一起时,比如把一个用户的所有标签、订单项或类别连成一行显示,这个函数就特别有用。
GROUP_CONCAT(expression SEPARATOR separator)
例如,有一个文章标签表:
article_id | tag -----------|-------- 1 | MySQL 1 | Database 2 | Python 2 | Web
你想按文章ID汇总所有标签:
SELECT article_id, GROUP_CONCAT(tag) AS tags结果会是:
article_id | tags -----------|------------------- 1 | MySQL,Database 2 | Python,Web
你可以使用 SEPARATOR 指定其他连接符号:
SELECT article_id, GROUP_CONCAT(tag SEPARATOR ' | ') AS tags输出:
欢迎使用阳光订餐系统,本系统使用PHP5+MYSQL开发而成,距离上一个版本1.2.8发布已经有一年了。本系统集成了留言本,财务管理,菜单管理,员工管理,安全管理,WAP手机端等功能,并继续继承1.X老版本简单、实用、美观的特点,在老版本上的基础上做了如下更新:1.更简洁的前台与后台,菜单及功能布局更合理。2.更合理的文件结构,合理适度的模板机制以及OO运用,更易于理解的代码,更适于二次开发;3.
2
1 | MySQL | Database 2 | Python | Web
如果数据中有重复值,可以用 DISTINCT 去重:
SELECT article_id, GROUP_CONCAT(DISTINCT tag ORDER BY tag) AS tagsGROUP_CONCAT 有长度限制,默认是 1024 字符。如果拼接内容太长,会被截断。
可以通过设置系统变量来扩大上限:
SET SESSION group_concat_max_len = 10000;建议在查询前设置,避免影响全局配置。
基本上就这些。GROUP_CONCAT 简单但强大,适合报表汇总、导出数据等场景,合理使用能让查询结果更直观。
以上就是如何在mysql中使用GROUP_CONCAT聚合文本的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号