上一篇
2025年8月最新动态:MySQL 8.4版本优化了GROUP_CONCAT性能,默认排序速度提升30%!现在处理百万级数据拼接更流畅了~
这个函数是MySQL里的"数据胶水"🧴,能把多行数据粘成一行显示,比如把全班同学的名字合并成「张三,李四,王五」这样的字符串,超适合做报表统计!
-- 基础语法 SELECT GROUP_CONCAT(字段名 SEPARATOR '分隔符') FROM 表名 GROUP BY 分组字段;
把订单里的商品名称合并显示:
SELECT order_id, GROUP_CONCAT(product_name) AS products FROM orders GROUP BY order_id;
👉 输出效果:
10086 | 手机,耳机,充电宝
用「|」代替默认逗号:
GROUP_CONCAT(product_name SEPARATOR ' | ')
只保留不重复的城市名:
SELECT GROUP_CONCAT(DISTINCT city) FROM customers;
按字母倒序排列用户名:
GROUP_CONCAT(username ORDER BY username DESC)
给每个值加前缀:
GROUP_CONCAT(CONCAT('ID:', user_id) SEPARATOR '; ')
长度限制🔒:默认1024字节,超长会被截断
SET SESSION group_concat_max_len = 1000000;
NULL值处理:如果有NULL值,整个结果会变NULL
GROUP_CONCAT(IFNULL(字段,''))
性能注意:大数据量时建议先过滤再拼接
猜猜这个查询结果是什么?
SELECT GROUP_CONCAT(LEFT(name,1)) FROM (SELECT 'Alice' name UNION SELECT 'Bob') t;
(答案:A,B)
本文由 鄂令婧 于2025-08-03发表在【云服务器提供商】,文中图片由(鄂令婧)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/526309.html
发表评论