大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
两位员工馮大和馮二也要面对无情的 KPI 考核了为例进行,他们工作干得很不错,performance 分别是 4 和 5
领导想要查看每个 performance 下都有谁,同时要求将这些人的名称要逗号拼接成一个字符串,也就是说要得到下面的结果:
要将结果集中某个指定的列进行字符串拼接,这要怎么做呢?
GROUP_CONCAT(expr)
在 Mysql 官方文档 中,该函数被放在聚合函数章节,如果你要按照指定字段分组拼接,就要配合关键字GROUP BY来使用的
定义
该函数返回一个字符串结果,该字符串结果是通过分组串联的非NULL值。如果没有非NULL值,则返回NULL。完整语法如下:
这个语法看着太复杂了吧,别着急,下面会用例子慢慢说明逐一验证:
案例
SELECT performance, GROUP_CONCAT(employee_name) AS emloyees
FROM employees
GROUP BY performance
查询结果:
这样完成基本需求,考虑结果集去重,就用到了另一个关键字 DISTINCT
SELECT GROUP_CONCAT(DISTINCT home_town)FROM employees
检索结果:
对结果集 进行排序呢?ORDER BY关键字就派上用场了
SELECT GROUP_CONCAT(DISTINCT home_town ORDER BY home_town DESC) AS "领导关怀地区"
FROM employees
检索结果:
GROUP_CONCAT函数拼接字符串默认的分隔符是逗号, 不想用逗号的话,SEPARATOR关键字就派上用场了
SELECT GROUP_CONCAT(DISTINCT home_town ORDER BY home_town DESC SEPARATOR "!") AS "领导关怀地区"
FROM employees
检索结果:
注意:
GROUP_CONCAT()
函数返回单个字符串,而不是值列表。这意味着我们不能在 IN
运算符中使用GROUP_CONCAT()
函数的结果
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/187391.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...