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 11 MySQL
Mysql中调试存储过程最简单的方法
Jun 30 MySQL
MySQL命令无法输入中文问题的解决方式
Aug 30 MySQL
MySQL悲观锁与乐观锁的实现方案
Nov 02 MySQL
关于MySQL中的 like操作符详情
Nov 17 MySQL
彻底解决MySQL使用中文乱码的方法
Jan 22 MySQL
weblogic服务建立数据源连接测试更新mysql驱动包的问题及解决方法
Jan 22 MySQL
教你如何让spark sql写mysql的时候支持update操作
Feb 15 MySQL
简单聊一聊SQL注入及防止SQL注入
Mar 23 MySQL
MySQL外键约束(Foreign Key)案例详解
Jun 28 MySQL
Mysql表数据比较大情况下修改添加字段的方法实例
Jun 28 MySQL
SQL中去除重复数据的几种方法汇总(窗口函数对数据去重)
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 MYSQL乱码问题,使用SET NAMES utf8校正
2009/11/30 PHP
如何使用php判断服务器是否是HTTPS连接
2013/07/05 PHP
php PDO异常处理详解
2016/11/20 PHP
PHP PDOStatement::setFetchMode讲解
2019/02/03 PHP
Ext第一周 史上最强学习笔记---GridPanel(基础篇)
2008/12/29 Javascript
ImageZoom 图片放大镜效果(多功能扩展篇)
2010/04/14 Javascript
JS TextArea字符串长度限制代码集合
2012/10/31 Javascript
getAsDataURL在Firefox7.0下无法预览本地图片的解决方法
2013/11/15 Javascript
jQuery函数map()和each()介绍及异同点分析
2014/11/08 Javascript
node.js中的fs.writeSync方法使用说明
2014/12/15 Javascript
使用mini-define实现前端代码的模块化管理
2014/12/25 Javascript
Javascript基础教程之比较操作符
2015/01/18 Javascript
jQuery实现折线图的方法
2015/02/28 Javascript
JS判断当前页面是否在微信浏览器打开的方法
2015/12/08 Javascript
详解JavaScript中localStorage使用要点
2016/01/13 Javascript
angular6.x中ngTemplateOutlet指令的使用示例
2018/08/09 Javascript
详解使用element-ui table组件的筛选功能的一个小坑
2018/11/02 Javascript
微信小程序实现打卡日历功能
2020/09/21 Javascript
Vue+Express实现登录状态权限验证的示例代码
2019/05/05 Javascript
vue实现路由切换改变title功能
2019/05/28 Javascript
详解Python2.x中对Unicode编码的使用
2015/04/03 Python
如何利用Fabric自动化你的任务
2016/10/20 Python
详解python脚本自动生成需要文件实例代码
2017/02/04 Python
Python二叉搜索树与双向链表转换算法示例
2019/03/02 Python
Django Channels 实现点对点实时聊天和消息推送功能
2019/07/17 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
2020/04/26 Python
python3.9实现pyinstaller打包python文件成exe
2020/12/13 Python
HTML5 虚拟键盘出现挡住输入框的解决办法
2017/02/14 HTML / CSS
西班牙英格列斯百货英国官网:El Corte Inglés英国
2017/10/30 全球购物
超市业务员岗位职责
2013/12/05 职场文书
大学生毕业鉴定
2014/01/31 职场文书
关于爱国的演讲稿
2014/05/07 职场文书
竞争与合作演讲稿
2014/05/12 职场文书
应届毕业生的自我评价
2019/06/21 职场文书
MySQL单表千万级数据处理的思路分享
2021/06/05 MySQL
Python如何用re模块实现简易tokenizer
2022/05/02 Python