MySQL实现用逗号进行拼接、以逗号进行分割


Posted in MySQL onDecember 24, 2022

MySQL用逗号进行拼接、以逗号进行分割

MySQL中,把查询的结果拼接成一个字符串。

group_concat 函数

用法:group_concat (待拼接对象)

输出:用逗号进行拼接后的字符串

例子:

select group_concat(emp_no) as employees from dept_emp;
 
/*
结果:
employees                                                         |
+-------------------------------------------------------------------+
| 10001,10002,10003,10004,10005,10006,10007,10008,10009,10010,10010 |
+-------------------------------------------------------------------+
*/

可以使用MySQL中的字符串拆分函数实现:

substring_index(str,delim,count)

说明:str: 被分割的字符串; delim: 分隔符; count: 分割符出现的次数

例子:

对于字符串 “209755,209756,209757” ,设置delim为 “,”,count为1,就会返回 “209755”;

其它参数不变,count为2,就会返回 “209755,209756”;其它参数不变,count为-1,就会返回 “209757”。

select colnum_name
,(select substring_index(substring_index(bill_ids,',',1),',',-1)) as bill_id1
,(select substring_index(substring_index(bill_ids,',',2),',',-1)) as bill_id2
,(select substring_index(substring_index(bill_ids,',',3),',',-1)) as bill_id3
from table_name;

若不知道要分割的字段究竟有几个值(如可能某些行就1个值,某些有6个),可以考虑根据具有最多值的数量来选择使用多少条

(select substring_index(substring_index(bill_ids,’,’,第几个值),’,’,-1))语句,但是会有问题(待解决)

例子:

原表
1
2,3,4
5,6
分割的结果
1 1 1
2 3 4
5 6 6

MySQL多行数据用逗号拼接返回一行

解决方案

先说解决办法,这里使用的是 GROUP_CONCAT 函数,先来实例:

SELECT GROUP_CONCAT( `name` SEPARATOR ',' ) FROM uim_user 

这样返回的多行数据会合并成一行,并且用逗号分割返回.

GROUP_CONCAT简单阐述

使用语法:

group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])

一般与group by 分组一起使用,如果不分组默认返回一行

而分组后会把相同分组类型的数据返回一行,并且可使用分割符号分割,去重,排序等操作

简单实例:

这里是按照部门分组,这样同一个部门的人会返回一行并且用逗号分割

SELECT group_concat( distinct(name) SEPARATOR ',' ) name FROM uim_user group by dept_id

ps:开发中会有很多种需要合并结果集的情况,比如要查询小明这个同学所有科目分数返回一行,这样使用来达到返回数据的要求。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

MySQL 相关文章推荐
.Net Core导入千万级数据至Mysql的步骤
May 24 MySQL
zabbix监控mysql的实例方法
Jun 02 MySQL
如何搭建 MySQL 高可用高性能集群
Jun 21 MySQL
MySQL非空约束(not null)案例讲解
Aug 23 MySQL
MySQL派生表联表查询实战过程
Mar 20 MySQL
MySQL数据库查询进阶之多表查询详解
Apr 08 MySQL
Mysql索引失效 数据库表中有索引还是查询很慢
May 15 MySQL
MySQL选择合适的备份策略和备份工具
Jun 01 MySQL
MySQL生成千万测试数据以及遇到的问题
Aug 05 MySQL
mysql数据库如何转移到oracle
Dec 24 MySQL
SQL中去除重复数据的几种方法汇总(窗口函数对数据去重)
May 08 MySQL
关于MySQL中explain工具的使用
May 08 MySQL
MySQL数据管理操作示例讲解
Dec 24 #MySQL
MySQL深分页问题解决思路
Dec 24 #MySQL
DQL数据查询语句使用示例
Dec 24 #MySQL
mysql数据库如何转移到oracle
Dec 24 #MySQL
mysql序号rownum行号实现方式
Dec 24 #MySQL
Mysql的Table doesn't exist问题及解决
Dec 24 #MySQL
Mysql如何查看是否使用到索引
Dec 24 #MySQL
You might like
德生1994机评
2021/03/02 无线电
php chr() ord()中文截取乱码问题解决方法
2008/09/08 PHP
PHP中static关键字原理的学习研究分析
2011/07/18 PHP
PHP转换IP地址到真实地址的方法详解
2013/06/09 PHP
网页上facebook分享功能具体实现
2014/01/26 PHP
朋友网关于QQ相关的PHP代码(研究QQ的绝佳资料)
2015/01/26 PHP
PHP chunk_split()函数讲解
2019/02/12 PHP
Track Image Loading效果代码分析
2007/08/13 Javascript
JavaScript 继承机制的实现(待续)
2010/05/18 Javascript
JavaScript+CSS实现仿Mootools竖排弹性动画菜单效果
2015/10/14 Javascript
如何防止JavaScript自动插入分号
2015/11/05 Javascript
js密码强度检测
2016/01/07 Javascript
基于javascript制作微信聊天面板
2020/08/09 Javascript
关于JavaScript限制字数的输入框的那些事
2016/08/14 Javascript
input获取焦点时底部菜单被顶上来问题的解决办法
2017/01/24 Javascript
深入理解Vue.js源码之事件机制
2017/09/27 Javascript
Vue组件中的data必须是一个function的原因浅析
2018/09/03 Javascript
vue组件之间通信实例总结(点赞功能)
2018/12/05 Javascript
Node4-5静态资源服务器实战以及优化压缩文件实例内容
2019/08/29 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
2019/10/30 Javascript
JavaScript基于SVG的图片切换效果实例代码
2020/12/15 Javascript
用Python登录Gmail并发送Gmail邮件的教程
2015/04/17 Python
K-means聚类算法介绍与利用python实现的代码示例
2017/11/13 Python
python实现爬取百度图片的方法示例
2019/07/06 Python
Python3将jpg转为pdf文件的方法示例
2019/12/13 Python
阿姆斯特丹杜莎夫人蜡像馆官方网站:Madame Tussauds Amsterdam
2019/03/12 全球购物
销售总监岗位职责
2014/01/04 职场文书
竞选大队干部演讲稿
2014/09/11 职场文书
高一学年自我鉴定范文(3篇)
2014/09/26 职场文书
个人买房协议书范本
2014/10/06 职场文书
学习走群众路线心得体会
2014/11/05 职场文书
2014年大学宣传部工作总结
2014/12/19 职场文书
浅谈tf.train.Saver()与tf.train.import_meta_graph的要点
2021/05/26 Python
如何利用opencv判断两张图片是否相同详解
2021/07/07 Python
MySQL基础快速入门知识总结(附思维导图)
2021/09/25 MySQL
SpringBoot详解整合Redis缓存方法
2022/07/15 Java/Android