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 相关文章推荐
教你用eclipse连接mysql数据库
Apr 22 MySQL
MySQL数字类型自增的坑
May 07 MySQL
IDEA 链接Mysql数据库并执行查询操作的完整代码
May 20 MySQL
浅谈mysql返回Boolean类型的几种情况
Jun 04 MySQL
详细谈谈MYSQL中的COLLATE是什么
Jun 11 MySQL
mysql配置SSL证书登录的实现
Sep 04 MySQL
MySQL实例精讲单行函数以及字符数学日期流程控制
Oct 15 MySQL
MYSQL 运算符总结
Nov 11 MySQL
mysql中整数数据类型tinyint详解
Dec 06 MySQL
详解MySQL的主键查询为什么这么快
Apr 03 MySQL
CentOS 7安装mysql5.7使用XtraBackUp备份工具命令详解
Apr 12 MySQL
MYSQL事务的隔离级别与MVCC
May 25 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
异世界新番又来了,同样是从零开始,男主的年龄降到5岁
2020/04/09 日漫
Syphon 使用方法
2021/03/03 冲泡冲煮
php中拷贝构造函数、赋值运算符重载
2012/07/25 PHP
使用PHP会话(Session)实现用户登陆功能
2013/06/29 PHP
Yii2框架数据库简单的增删改查语法小结
2016/08/31 PHP
php mysql_list_dbs()函数用法示例
2017/03/29 PHP
PHP+redis实现的限制抢购防止商品超发功能详解
2019/09/19 PHP
JavaScript CSS修改学习第六章 拖拽
2010/02/19 Javascript
javascript开发随笔一 preventDefault的必要
2011/11/25 Javascript
Package.js  现代化的JavaScript项目make工具
2012/05/23 Javascript
JavaScript之IE的fireEvent方法详细解析
2013/11/20 Javascript
JavaScript遍历Json串浏览器输出的结果不统一问题
2016/11/03 Javascript
用纯Node.JS弹出Windows系统消息提示框实例(MessageBox)
2017/05/17 Javascript
Angular实现的table表格排序功能完整示例
2017/12/22 Javascript
vue-router懒加载速度缓慢问题及解决方法
2018/11/25 Javascript
JavaScript中filter的用法实例分析
2019/02/27 Javascript
微信提示 在浏览器打开 效果实现过程解析
2019/09/10 Javascript
[53:10]完美世界DOTA2联赛决赛日 FTD vs GXR 第二场 11.08
2020/11/11 DOTA
python用来获得图片exif信息的库实例分析
2015/03/16 Python
Python随机生成手机号、数字的方法详解
2017/07/21 Python
Python将多个excel表格合并为一个表格
2021/02/22 Python
Python面向对象之接口、抽象类与多态详解
2018/08/27 Python
Python的垃圾回收机制详解
2019/08/28 Python
使用IPython或Spyder将省略号表示的内容完整输出
2020/04/20 Python
完美解决python针对hdfs上传和下载的问题
2020/06/05 Python
如何查看python关键字
2021/01/17 Python
英国最大的百货公司:Harrods
2016/08/18 全球购物
美国餐厅用品和厨房设备批发网站:KaTom Restaurant Supply
2018/01/27 全球购物
Brora官网:英国领先的羊绒服装品牌
2019/08/28 全球购物
俄罗斯电动工具和设备购物网站:Vseinstrumenti.ru
2020/11/12 全球购物
物流司机岗位职责
2013/12/28 职场文书
社区综治宣传月活动总结
2014/07/02 职场文书
2016年春季运动会广播稿
2015/08/19 职场文书
中国文明网2015年“向国旗敬礼”活动网上签名寄语
2015/09/24 职场文书
Python selenium的这三种等待方式一定要会!
2021/06/10 Python
redis protocol通信协议及使用详解
2022/07/15 Redis