mysql group_concat函数用法
时间: 2023-08-17 12:14:55 浏览: 112
引用\[1\]:group_concat函数是MySQL中的一个聚合函数,用于将多行数据按照指定的方式进行连接。它的语法是group_concat(\[distinct\] 字段名 \[order by 排序字段 asc/desc\] \[separator '分隔符'\])。\[1\]当只指定字段名时,group_concat函数会将该字段的所有值连接起来,并用逗号作为分隔符。例如,在emp表中使用group_concat(emp_name)函数,会将emp_name字段的所有值连接起来,并用逗号分隔。结果如下:
+-------------------------------+
| group_concat(emp_name) |
+-------------------------------+
| 张晶晶,王飞飞,赵刚,刘小贝,王大鹏,张小斐,刘云云,刘云鹏,刘云鹏 |
+-------------------------------+
当使用group by子句对结果进行分组时,group_concat函数可以按照分组后的结果进行连接。例如,在emp表中使用group_concat(emp_name)函数,并按照department字段进行分组,结果如下:
+------------+-------------------------------+
| department | group_concat(emp_name) |
+------------+-------------------------------+
| 人事部 | 刘小贝,王大鹏,张小斐 |
| 财务部 | 张晶晶,王飞飞,赵刚 |
| 销售部 | 刘云云,刘云鹏,刘云鹏 |
+------------+-------------------------------+
引用\[2\]:在group_concat函数中,可以使用distinct关键字去除重复的值。例如,在emp表中使用group_concat(distinct emp_name)函数,并按照department字段进行分组,结果如下:
+------------+-------------------------------+
| department | group_concat(emp_name) |
+------------+-------------------------------+
| 人事部 | 刘小贝,王大鹏,张小斐 |
| 财务部 | 张晶晶,王飞飞,赵刚 |
| 销售部 | 刘云云,刘云鹏,刘云鹏 |
+------------+-------------------------------+
引用\[3\]:在group_concat函数中,还可以使用order by子句对连接的结果进行排序。例如,在emp表中使用group_concat(distinct emp_name order by salary desc)函数,并按照department字段进行分组,结果如下:
+------------+--------------------------------------------------------------------+
| department | group_concat(distinct emp_name order by salary desc) |
+------------+--------------------------------------------------------------------+
| 人事部 | 王大鹏,刘小贝,张小斐 |
| 财务部 | 赵刚,王飞飞,张晶晶 |
| 销售部 | 刘云云,刘云鹏 |
+------------+--------------------------------------------------------------------+
此外,还可以使用separator关键字指定连接的分隔符。例如,在emp表中使用group_concat(distinct emp_name order by salary desc separator '@')函数,并按照department字段进行分组,结果如下:
+------------+--------------------------------------------------------------------+
| department | group_concat(distinct emp_name order by salary desc separator '@') |
+------------+--------------------------------------------------------------------+
| 人事部 | 王大鹏@刘小贝@张小斐 |
| 财务部 | 赵刚@王飞飞@张晶晶 |
| 销售部 | 刘云云@刘云鹏 |
+------------+--------------------------------------------------------------------+
这样就可以将连接的结果用@符号作为分隔符进行显示。
#### 引用[.reference_title]
- *1* *2* *3* [MySQL中group_concat函数用法总结](https://blog.csdn.net/weixin_44377973/article/details/103103745)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文