SQL—Group_Concat函数用法详解
创作时间:
作者:
@小白创作中心
SQL—Group_Concat函数用法详解
引用
CSDN
1.
https://blog.csdn.net/weixin_48935611/article/details/144889460
SQL—Group_Concat函数用法详解
GROUP_CONCAT
函数是SQL中一个非常实用的聚合函数,主要用于将多行数据合并为一个字符串。其基本语法如下:
GROUP_CONCAT([DISTINCT] expression [ORDER BY expression] [SEPARATOR separator])
- DISTINCT(可选):去除重复的值。指定
DISTINCT
,GROUP_CONCAT
会在连接值之前去除重复的行。 - expression:需要合并的字段或表达式。可以是表中的列,也可以是计算结果。
- ORDER BY expression(可选):定义合并顺序。可以对结果进行排序(例如按字母顺序排序)。
- SEPARATOR separator(可选):指定连接值之间的分隔符,默认为逗号(
,
)。可以自定义为其他字符或字符串(如空格、分号、破折号等)。
Demo01:基本用法
将同一个state
下的city
合并为一个以逗号分隔的字符串。
state | city |
---|---|
California | Los Angeles |
California | San Francisco |
California | San Diego |
Texas | Houston |
Texas | Austin |
Texas | Dallas |
Demo02:去重使用(DISTINCT)
避免重复的城市名称,可以使用DISTINCT
。
state | city |
---|---|
California | Los Angeles |
California | Los Angeles |
Texas | Houston |
Texas | Austin |
Texas | Dallas |
SELECT
state,
GROUP_CONCAT(DISTINCT city ORDER BY city ASC SEPARATOR ', ') AS cities
FROM
cities
GROUP BY
state;
state | cities |
---|---|
California | Los Angeles |
Texas | Austin, Dallas, Houston |
Demo03:自定义分隔符
使用SEPARATOR
参数自定义分隔符。将城市之间用分号(;
)连接:
state | cities |
---|---|
California | Los Angeles; San Diego; San Francisco |
Texas | Austin; Dallas; Houston |
Demo04:按其他字段排序
使用ORDER BY
对结果进行排序。按城市名称的字母降序排列:
state | cities |
---|---|
California | San Francisco, San Diego, Los Angeles |
Texas | Houston, Dallas, Austin |
Demo05:合并计算结果
GROUP_CONCAT
不仅可以用来合并字段,还可以合并计算结果。例如,连接多个字段或计算的结果:
state | city | population |
---|---|---|
California | Los Angeles | 1000000 |
California | San Francisco | 900000 |
Texas | Houston | 2000000 |
Texas | Austin | 900000 |
SELECT
state,
GROUP_CONCAT(CONCAT(city, ' (', population, ')') ORDER BY city ASC SEPARATOR ', ') AS cities
FROM
cities
GROUP BY
state;
state | cities |
---|---|
California | Los Angeles (1000000), San Francisco (900000) |
Texas | Austin (900000), Houston (2000000) |
Demo06:最大长度限制
默认情况下,GROUP_CONCAT
的结果字符串有最大长度限制。查询当前最大长度:
SHOW VARIABLES LIKE 'group_concat_max_len';
修改最大长度(例如,设置为 10000 字节):
SET SESSION group_concat_max_len = 10000;
本文原文来自CSDN,作者weixin_48935611
热门推荐
蔚来全生命周期质量体系"ATQ"首次公布
广州市医院排行
沈阳室内滑雪场哪家强?三大雪场对比与选择指南
哈尔滨冰雪大世界26天破百万,东北冰雪游迎来爆发
商丘到厦门自驾游,这份车辆检查清单太实用了!
红薯美食攻略:这些搭配禁忌你知道吗?
从零开始的旅行Vlog:设备选购、拍摄技巧到剪辑要点全攻略
老子的理性认识论:超越“见多识广”的智慧
三亚亚龙龙湾摄影全攻略:最佳取景地与拍摄技巧
三亚亚龙湾热带天堂:450米高空栈桥览热带雨林,是海南珍稀物种庇护所
2024年买房四大原则:边户南向最受欢迎,这四类楼层要避开
家庭居住优选:三居室户型特点与选购指南
高层住宅选层有讲究,“选三不选二”最实用
长征八号甲火箭2025年首飞倒计时:7吨级运载能力突破
长征八号甲火箭即将首飞:7吨级运载能力填补国内空白
长征八号甲首飞在即,中国航天科技再突破
白酒产业如何“智造”新质生产力?走进国台寻答案
丁香精油:消炎止痛、助消化的居家常备良药
从温中散寒到抗癌:丁香叶的全面药用功效
怎么判断颅底斜坡脊索瘤是哪个等级?
第十四届北京国际电影节电影大师班:陈冲与冯小刚谈表演与导演的艺术
脊索瘤的病理分型有哪些
适用于会议室的3种无线投屏解决方案
无线投屏的功能玩法,让智能家居展现全新“形态”
诗意新年祝福,让年会更精彩
年会祝福语攻略:让正能量点燃你的新年!
新年祝福语大揭秘:不同场合这样说!
手机通讯录恢复教程:从备份到无备份的详细操作指南
手机通讯录大营救:恢复SIM卡联系人的三种重要方法
秋冬季节,如何正确评估优甲乐治疗效果?