MySQL流浪记(六)—— CONCAT到GROUP_CONCAT的沿途风景(图文详解)

本文中的案例如下,可以自己测试一下,有问题可以留言哦。

CREATE TABLE staff (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),job_id INT, joindate DATE,salary DECIMAL(7,2)
);
INSERT INTO staff(name,job_id,joindate,salary) VALUES 
('孙悟空',4,'2000-12-17',8000.00),
('卢俊义',3,'2001-02-20',16000.00),
('林冲',3,'2001-02-22',12500.00),
('唐僧',2,'2001-04-02',29750.00),
('李逵',4,'2001-09-28',12500.00)
('孙悟空',4,'2000-12-17',8000.00),
('林冲',3,'2001-02-22',12500.00);

CONCAT

  CONCAT函数用于将两个字符串连接起来,形成一个单一的字符串。
  语法:CONCAT(str1,str2,)
  输出:拼接的字符串,如果有任何一个参数为null,则返回值为null。

SELECT CONCAT(id,name,job_id) id_name_job_id FROM staff;

在这里插入图片描述
  这样简单粗暴的将三个字符串连接起来,看起来是有一点不美观,如果用符号连接起来会美观一些。来试一下。

SELECT CONCAT(id,' - ',name,' - ',job_id) id_name_job_id FROM staff;

在这里插入图片描述
  可以看出来,将分割符以字符的形式添加到他们之间,这样就美观很多了。那么问题来了,现在是三个字符可以很轻松地直接在他们之间添加分隔符 ,如果有一百个字符串呢,有一千个字符串呢,这就是一个比较大的工程了,聪明的前辈们肯定想到了这一点,CONCAT_WS函数就出现了。

CONCAT_WS

  CONCAT_WS和CONCAT函数用法基本是相同的,相当于是CONCAT的一个升级,它省去了CONCAT函数逐一添加分隔符的繁琐操作,可以一劳永逸的添加分隔符。
  语法:CONCAT_WS(separator,str1,str2,)
  输出:以separator为分隔符的拼接字符串。分隔符不能为NULL,否则返回NULL

SELECT CONCAT_WS(' - ',id,name,job_id) id_name_jod_id FROM staff;

在这里插入图片描述
  这样就很方便的将他们风格,可以说是简单又美观。细心的你肯定发现了他们之间有好多重复的信息,比如说“孙悟空”和“李逵”的工号重复了,“卢俊义”和“林冲”的工号页重复了,这样说起来还可以变的更美观一些,于是GROUP_CONCAT就出现了。

GROUP_CONCAT

  GROUP_CONCAT和前面的两个函数的功能基本上是一样的,也是将字符进行拼接,不同之处在于它“返回由属于一组的列值连接组合而成的结果”,也就是说他是将链接的字符进行分组后输出的。
  语法:group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator ‘分隔符’] )
  返回:将GROUP BY产生的同一个组的字符进行连接。

SELECT job_id,GROUP_CONCAT(name) name FROM staff GROUP BY job_id;

在这里插入图片描述
  这样就可以将相同工号的员工分到一组进行输出,但是这样还不是很完美,因为有一些人被重复统计了,看来同名同姓的人还不少,可以使用去重函数DISTINCT,然后再进行分组,这样虽然可以,但是SQL语句不够简洁,可以直接再GROUP_CONCAT函数中直接进行去重。

SELECT job_id, GROUP_CONCAT(DISTINCT name) name FROM staff GROUP BY job_id;

在这里插入图片描述
  可以看到,去重的效果还是可以的。既然可以去重了,排序可不可以呢?
在这里插入图片描述  可以发现对他们的名字进行了字典序排序,GROUP_CONCAT还有一个功能就是更改分隔符,它默认的分隔符是“,”。

SELECT job_id, GROUP_CONCAT(DISTINCT name ORDER BY name DESC SEPARATOR "-") name 
FROM staff GROUP BY job_id;

在这里插入图片描述
  到这里就全部将GROUP_CONCAT函数说完了,欢迎大家批评指正。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/494738.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

收藏!最新大数据产业地图 十大生态金矿百大公司起底【附下载】

来源:智东西人工智能的崛起,加速了大数据技术的应用落地。据中国大数据产业生态联盟调查显示,国内大数据企业年营业额4000万人民币以上的已经超过40%,这意味着,这些企业已经度过生存期,开始进入应用落地和品…

【一鸣离职,左晖去世】互联网老兵给大家的三个建议

2021年5月20日,除了娱乐圈的分分合合,互联网圈发生了两件大事: 1、字节跳动创始人张一鸣发布内部全员信,宣布卸任CEO一职。 2、贝壳发布讣告,公司创始人兼董事长左晖先生因疾病意外恶化于2021年5月20日…

科大讯飞:让世界听见AI的声音

来源:华为怀揣着“让世界聆听我们的声音”的梦想,科大讯飞依托世界领先的核心技术,引领智能浪潮,服务亿万用户,从中国语音产业的拓荒者一跃成为世界人工智能产业的领军者,而最初科大讯飞把语音作为切入点却…

Linux中的chmod详解

chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令。Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。只有…

【程序员薪资】2021年04月新鲜出炉,看看你拖后腿了吗?

程序员一直都是一个备受人们关注的群体。据IDC统计,全球约有1850万名程序员(数据还在持续增长),中国占10%左右。随着近年全国互联网创业热潮的兴起,“互联网”、“云计算”以及“智能硬件”等领域发展迅速,…

CICC科普栏目|神经网络浅讲:从神经元到深度学习

图1 人脑神经网络来源: 计算机的潜意识摘要:神经网络是一门重要的机器学习技术。它是目前最为火热的研究方向–深度学习的基础。神经网络是一门重要的机器学习技术。它是目前最为火热的研究方向–深度学习的基础。学习神经网络不仅可以让你掌握一门强大的…

linux安装Redis(超详细,只要三分钟,每一步命令都有命令截图及运行截图)

Redis redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取…

鬼才!用Python计算圆周率 π

目录 一、圆周率的历史发展 1、中国 2、印度 3、欧洲 二、用python计算圆周率 A货:什么!你不会背圆周率(鄙夷的眼神) 3.1415926535 8979323846 26433... 桥哥:我会算呀 !!! 一…

大数据常见问题:数据倾斜

offer收割系列介绍: 1、分享桥哥本人或小伙伴在面试大厂时遇到的真题,并给出参考答案!!如果能帮到大家,点赞、收藏、评论是对我最大的支持!! 2、涉及岗位:主要为大数据开发、数据仓…

一图看懂新一代人工智能知识体系大全

来源:财经头条摘要:人工智能的发展离不开基础支持层和技术层,基础支持层包括大数据、计算力和算法;技术层包括计算机视觉、语音识别和自然语言处理。人工智能的技术本质是什么,本文会详细分析。人工智能的发展离不开基…

阿里、字节offer收割系列:数据仓库岗(面试真题,建议收藏)

【offer收割系列介绍】 1、分享桥哥本人或小伙伴在面试大厂时遇到的真题,并给出参考答案!! 2、涉及岗位:主要为大数据开发、数据仓库(桥哥干过的),其它岗位也可参考 3、涵盖技术:mys…

MIT新开发的 AI 模型有望改进恶性脑瘤治疗

来源:人工智能和大数据美国研究人员新近开发出一种人工智能模型,能够为胶质母细胞瘤患者设计出最小剂量给药方案,在缩小肿瘤的同时减少药物带来的毒副作用,改进患者生活质量。胶质母细胞瘤是一种常见的恶性脑瘤,常见疗…

建议收藏丨大数据集群常用监控命令(内存、磁盘、CPU、网络)

大家好,我是明月十四桥!! 擅长领域:python黑科技、大数据后端研发、数据仓库 今日重点: ① 学会查看linux各种状态,包括:网络IO、磁盘、CPU、内存等; ② 学会理解命令所代表的含义&a…

中科院王飞跃:新的智能全球化将要来临,人工智能标准化为时尚早

中国科学院自动化研究所复杂系统管理与控制国家重点实验室主任王飞跃来源:财经网摘要:8月11日,中国科学院自动化研究所复杂系统管理与控制国家重点实验室主任王飞跃在由厚益控股和《财经》杂志联合主办主题为“共享全球智慧 引领未来科技”的…

建议收藏丨sql行转列的一千种写法!!

大家好,我是明月十四桥!! 爱好特长: 1、爱好和特长有很多,擅长word、excel、ppt、wind等软件的安装与卸载; 2、精通PE、PS、PB、DCF、PEG等单词的拼写; 3、熟悉Windows、Linux、Mac、Android、I…

深度学习并非万能:你需要避免这三个坑

作者 | George Seif编译 | 专知整理 | Mandy, Sanglei摘要:本文是人工智能专家George Seif撰写的博文,介绍了在当前深度学习比较火热的情景下需要避免的三个坑。Tweaking Neural Net ParametersThree reasons that you should NOT use deep learning深度…

万字长文丨7个经典问题,助你拿下Java面试(建议收藏)

擅长领域:execl、word、ppt 等 今日重点: ① 掌握面试的基本素质; ② 学会7个典型的java面试问题。 有问题的小伙伴欢迎加我主页vx。评论、点赞、收藏是对我最大的支持!!! 目录 一、面试的目的 二、面…

应用人工智能有助心理学发展

来源: 中国社会科学报摘要:人工智能及相关技术的发展,为心理学研究提供了突破性的研究方法和工具;心理学对大脑机制的研究成果运用于人工智能领域,也推动着人工智能研究的进步。心理学同人工智能联系紧密,自…

【粉丝福利、免费领取】:1000套PPT模板、100份简历模板、硬核学习资料+PDF资料(java、python、大数据、机器学习)

目录 1、100套小编购买的简历模板(部分截图) 2、1000套精品PPT模板(部分截图) 3、大数据-学习资料(1.3G 硬核PDF,官方指南) 4、python学习全集 5、Java基础、高级和面试资料 6、大数据-行…

HDU 1142 A Walk Through the Forest dijkstra + DFS

http://acm.hdu.edu.cn/showproblem.php?pid1142 题意: Jimmy在位置 1 ,每天晚上要回位置2(家),计算1到2的最短距离,Jimmy要先去一个地方然后再回家,到了那个地方离家的距离不能大于1到2 的最短…