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 相关文章推荐
JDBC连接的六步实例代码(与mysql连接)
May 12 MySQL
正确使用MySQL update语句
May 26 MySQL
浅谈MySQL user权限表
Jun 18 MySQL
MySQL中日期型单行函数代码详解
Jun 21 MySQL
MySql 缓存查询原理与缓存监控和索引监控介绍
Jul 02 MySQL
sql注入教程之类型以及提交注入
Aug 02 MySQL
Mysql8.0递归查询的简单用法示例
Aug 04 MySQL
MySQL中datetime时间字段的四舍五入操作
Oct 05 MySQL
mysql 联合索引生效的条件及索引失效的条件
Nov 20 MySQL
MySQL为数据表建立索引的原则详解
Mar 03 MySQL
MySQL实现配置主从复制项目实践
Mar 31 MySQL
MYSQL如何查看操作日志详解
May 30 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
mysql 中InnoDB和MyISAM的区别分析小结
2008/04/15 PHP
php 函数使用方法与函数定义方法
2010/05/09 PHP
php中通过虚代理实现延迟加载的实现代码
2011/06/10 PHP
PHP callback函数使用方法和注意事项
2015/01/23 PHP
最准确的php截取字符串长度函数
2015/10/29 PHP
PHP二进制与字符串之间的相互转换教程
2016/10/14 PHP
PHP7多线程搭建教程
2017/04/21 PHP
学习YUI.Ext基础第一天
2007/03/10 Javascript
JS解析XML的实现代码
2009/11/12 Javascript
JS等比例缩小图片尺寸的实例
2013/02/27 Javascript
jquery ajax修改全局变量示例代码
2013/11/08 Javascript
jquery实现倒计时功能
2015/12/28 Javascript
KnockoutJs快速入门教程
2016/05/16 Javascript
微信页面倒计时代码(解决safari不兼容date的问题)
2016/12/13 Javascript
详解react服务端渲染(同构)的方法
2017/09/21 Javascript
实现图片首尾平滑轮播(JS原生方法—节流)
2017/10/17 Javascript
Vue的轮播图组件实现方法
2018/03/03 Javascript
微信小程序block的使用教程
2018/04/01 Javascript
Vue router安装及使用方法解析
2020/12/02 Vue.js
[02:29]完美世界高校联赛上海赛区回顾
2015/12/15 DOTA
跟老齐学Python之集成开发环境(IDE)
2014/09/12 Python
python3+PyQt5实现使用剪贴板做复制与粘帖示例
2017/01/24 Python
python 获取毫秒数,计算调用时长的方法
2019/02/20 Python
使用Python制作缩放自如的圣诞老人(圣诞树)
2019/12/25 Python
linux 下selenium chrome使用详解
2020/04/02 Python
python 如何把docker-compose.yaml导入到数据库相关条目里
2021/01/15 Python
整理HTML5的一些新特性与Canvas的常用属性
2016/01/29 HTML / CSS
附答案的Java面试题
2012/11/19 面试题
学校消防演习方案
2014/02/19 职场文书
新年联欢会主持词
2014/03/27 职场文书
社区班子对照检查材料
2014/08/27 职场文书
教师批评与自我批评
2014/10/15 职场文书
工作作风懒散检讨书
2014/10/29 职场文书
冬季作息时间调整通知
2015/04/24 职场文书
人身损害赔偿协议书
2016/03/22 职场文书
市语委办2016年第十九届“推普周”活动总结
2016/04/05 职场文书