MySQL拼接字符串,GROUP_CONCAT 值得拥有
来源:SegmentFault
时间:2023-02-23 09:02:08 138浏览 收藏
知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个数据库开发实战,手把手教大家学习《MySQL拼接字符串,GROUP_CONCAT 值得拥有》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!
上一篇文章 跨表更新,看到自己写的SQL像个憨憨写了关于跨表个更新的内容。一年过的很快,文中后来的两位员工
GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]] [SEPARATOR str_val])
What? 这个语法看着太复杂了吧,别着急,下面会用例子慢慢说明逐一验证滴
使用案例
先完成文章开头的需求:
SELECT performance, GROUP_CONCAT(employee_name) AS employees FROM employees GROUP BY performance;
zou是这个结果:
到这里,领导给过来的需求就完成了😜
客官请留步,您点的菜还没上完呢......
我们是国际化的团队,我们的家乡遍布五湖四海
领导想关怀一下员工,要查看公司全部员工的家乡都有哪些地方。员工们可能来自同一个地方,所以要将结果集去重复,
SELECT GROUP_CONCAT(DISTINCT home_town) FROM employees;
来看结果:
领导的关怀遍布五湖四海啊......
文案要改了,领导的关怀是遍布
SELECT GROUP_CONCAT(DISTINCT home_town ORDER BY home_town DESC) AS '领导关怀地区' FROM employees; -- 没我这么起变量的哈,还是汉语,我看你是疯了
这里你看到
SELECT GROUP_CONCAT(DISTINCT home_town ORDER BY home_town DESC SEPARATOR '!') AS '领导关怀地区' FROM employees;
SELECT GROUP_CONCAT(DISTINCT home_town SEPARATOR '') AS '领导关怀地区' FROM employees;
这关怀到位了吧,你品,你细品!!!
领导的关怀能力也有限,拼接的字符串默认的最大长度是1024个字符,可以通过下面语句查看当前限制是多少:
show variables like 'group_concat_max_len';
领导的能力可是飘忽不定的,所以我们可以灵活的设置这个值
SET [GLOBAL | SESSION] group_concat_max_len = val;
- SESSION: 在当前对话中生效
- GLOBAL:全局都生效
该语句在执行后,MySQL重启之前一直有作用,一旦重启 MySQL,则会恢复默认值
有时候
SELECT GROUP_CONCAT( CONCAT_WS(', ', contactLastName, contactFirstName) SEPARATOR ';') FROM customers;
这里是 CONCAT_WS()函数用法, 很简单,请自行查看吧......
注意⚠️
GROUP_CONCAT()函数返回单个字符串,而不是值列表。这意味着我们不能在 IN 运算符中使用GROUP_CONCAT()函数的结果,例如,在子查询中, 像这样:
SELECT id, name FROM table_name WHERE id IN GROUP_CONCAT(id);
总结
在许多情况下,我们都可以应用GROUP_CONCAT()函数产生出有用的结果,同时也可以结合其他函数发挥出更大的威力. 单招学会了,就要学会连招 combo 了
- 如果你也像我一样刚知道这个知识点,还请点个「在看」
- 如果你早都知道这个小儿科内容,还请留言送上「嘘声」
灵魂追问
- 聚合函数和 group by 搭配有哪些限制?
- 你能马上想到的聚合函数操作除了 sum 还有哪些?
个人博客:https://dayarch.top
加我微信好友, 进群娱乐学习交流,备注「进群」
欢迎关注我的公众号 「日拱一兵」,趣味原创解析Java技术栈问题,将复杂问题简单化,将抽象问题图形化落地
如果对我的专题内容感兴趣,或抢先看更多内容,欢迎访问我的博客 dayarch.top
今天带大家了解了MySQL、数据库的相关知识,希望对你有所帮助;关于数据库的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~
-
499 收藏
-
244 收藏
-
235 收藏
-
157 收藏
-
101 收藏
-
259 收藏
-
411 收藏
-
476 收藏
-
312 收藏
-
244 收藏
-
195 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 507次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习