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 相关文章推荐
MySQL pt-slave-restart工具的使用简介
Apr 07 MySQL
MySQL 角色(role)功能介绍
Apr 24 MySQL
MySQL 隔离数据列和前缀索引的使用总结
May 14 MySQL
MySQL 使用事件(Events)完成计划任务
May 24 MySQL
MySQL 不等于的三种使用及区别
Jun 03 MySQL
MySQL配置主从服务器(一主多从)
Aug 07 MySQL
MySQL into_Mysql中replace与replace into用法案例详解
Sep 14 MySQL
Mysql事务索引知识汇总
Mar 17 MySQL
Windows下载并安装MySQL8.0.x 版本的完整教程
Apr 10 MySQL
mysql中如何用命令创建联合唯一索引
Apr 20 MySQL
MySQL性能指标TPS+QPS+IOPS压测
Aug 05 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
PHP的宝库目录--PEAR
2006/10/09 PHP
PHP 强制下载文件代码
2010/10/24 PHP
php中将地址生成迅雷快车旋风链接的代码[测试通过]
2011/04/20 PHP
使用PHP破解防盗链图片的一个简单方法
2014/06/07 PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
2016/09/13 PHP
使用php自动备份数据库表的实现方法
2017/07/28 PHP
Aliyun Linux 编译安装 php7.3 tengine2.3.2 mysql8.0 redis5的过程详解
2020/10/20 PHP
jQuery的实现原理的模拟代码 -1 核心部分
2010/08/01 Javascript
JavaScript对象之间的转换 jQuery对象和原声DOM
2011/03/07 Javascript
Javascript面向对象编程(二) 构造函数的继承
2011/08/28 Javascript
JavaScript常用对象的方法和属性小结
2012/01/24 Javascript
js里取容器大小、定位、距离等属性搜集整理
2013/08/19 Javascript
JavaScript编程的单例设计模讲解
2015/11/10 Javascript
javascript电商网站抢购倒计时效果实现
2015/11/19 Javascript
jQuery实现简单的文件上传进度条效果
2020/03/26 Javascript
Jquery ajax基础教程
2015/11/20 Javascript
Vue 2.0的数据依赖实现原理代码简析
2017/07/10 Javascript
自制简易打赏功能的实例
2017/09/02 Javascript
解决js ajax同步请求造成浏览器假死的问题
2018/01/18 Javascript
基于Vue el-autocomplete 实现类似百度搜索框功能
2019/10/25 Javascript
JS中的变量作用域(console版)
2020/07/18 Javascript
Python常用随机数与随机字符串方法实例
2015/04/09 Python
Python函数返回值实例分析
2015/06/08 Python
python3+PyQt5重新实现自定义数据拖放处理
2018/04/19 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
2019/08/27 Python
基于python的selenium两种文件上传操作实现详解
2019/09/19 Python
Pandas之read_csv()读取文件跳过报错行的解决
2020/04/21 Python
Python脚本实现Zabbix多行日志监控过程解析
2020/08/26 Python
adidas泰国官网:adidas TH
2020/07/11 全球购物
介绍一下Linux中的链接
2016/05/28 面试题
经贸日语毕业生自荐信
2013/11/03 职场文书
三年级音乐教学反思
2014/01/28 职场文书
请假条标准格式规范
2014/04/10 职场文书
《荷花》教学反思
2014/04/16 职场文书
市场督导岗位职责
2015/04/10 职场文书
Python绘制分类图的方法
2021/04/20 Python