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批量新增和存储的方法实例
Apr 07 MySQL
详解Mysql 函数调用优化
Apr 07 MySQL
修改MySQL的数据库引擎为INNODB的方法
May 26 MySQL
MySQL不使用order by实现排名的三种思路总结
Jun 02 MySQL
MySQL系列之八 MySQL服务器变量
Jul 02 MySQL
一篇文章带你深入了解Mysql触发器
Aug 02 MySQL
MySQL之select、distinct、limit的使用
Nov 11 MySQL
浅谈redis的过期时间设置和过期删除机制
Mar 18 MySQL
MySQL 字符集 character
May 04 MySQL
sql注入报错之注入原理实例解析
Jun 10 MySQL
MySQL下载安装配置详细教程 附下载资源
Sep 23 MySQL
SQL Server数据库的三种创建方法汇总
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
PHP将整个网站生成HTML纯静态网页的方法总结
2012/02/05 PHP
Yii2使用$this->context获取当前的Module、Controller(控制器)、Action等
2017/03/29 PHP
input的focus方法使用
2010/03/13 Javascript
javascript学习笔记(四) Number 数字类型
2012/06/19 Javascript
jQuery获取注册信息并提示实现代码
2013/04/21 Javascript
jQuery获取对象简单实现方法小结
2014/10/30 Javascript
全面解析Bootstrap表单使用方法(表单控件)
2015/11/24 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
2016/06/02 Javascript
JS+Ajax实现百度智能搜索框
2017/08/04 Javascript
详解JS构造函数中this和return
2017/09/16 Javascript
微信小程序实现滑动切换自定义页码的方法分析
2018/12/29 Javascript
JS/jQuery实现获取时间的方法及常用类完整示例
2019/03/07 jQuery
微信小程序云开发之新手环境配置
2019/05/16 Javascript
Vue 动态添加路由及生成菜单的方法示例
2019/06/20 Javascript
vue项目中实现缓存的最佳方案详解
2019/07/11 Javascript
使用easyui从servlet传递json数据到前端页面的两种方法
2019/09/05 Javascript
Node 使用express-http-proxy 做api网关的实现
2020/10/15 Javascript
Python中使用PyHook监听鼠标和键盘事件实例
2014/07/18 Python
特征脸(Eigenface)理论基础之PCA主成分分析法
2018/03/13 Python
PyQt5固定窗口大小的方法
2019/06/18 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
2019/07/08 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
2019/08/24 Python
Python实现AI换脸功能
2020/04/10 Python
150行python代码实现贪吃蛇游戏
2020/04/24 Python
Python实现扫码工具的示例代码
2020/10/09 Python
python 爬取腾讯视频评论的实现步骤
2021/02/18 Python
美国波西米亚风格精品店:South Moon Under
2019/10/26 全球购物
自我评价怎么写好呢?
2013/12/05 职场文书
电脑租赁公司创业计划书
2014/01/08 职场文书
企业办公室主任岗位职责
2014/02/19 职场文书
2014年感恩母亲演讲稿
2014/05/27 职场文书
银行进社区活动总结
2014/07/07 职场文书
大学生学期个人总结
2015/02/12 职场文书
员工升职自荐信
2015/03/27 职场文书
起诉意见书范文
2015/05/19 职场文书
Python 视频画质增强
2022/04/28 Python