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 06 MySQL
IDEA 链接Mysql数据库并执行查询操作的完整代码
May 20 MySQL
MySQL 查询速度慢的原因
May 25 MySQL
MySQL系列之八 MySQL服务器变量
Jul 02 MySQL
MySQL约束超详解
Sep 04 MySQL
MySQL中几种插入和批量语句实例详解
Sep 14 MySQL
JMeter对MySQL数据库进行压力测试的实现步骤
Jan 22 MySQL
mysql下的max_allowed_packet参数设置详解
Feb 12 MySQL
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
Apr 09 MySQL
MySQL数据库事务的四大特性
Apr 20 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
火车采集器 免费版使出收费版本功能实现原理
2009/09/17 PHP
Javascript 继承机制实例
2009/08/12 Javascript
基于JQuery的数字改变的动画效果--可用来做计数器
2010/08/11 Javascript
nodejs获取本机内网和外网ip地址的实现代码
2014/06/01 NodeJs
jquery ajax请求方式与提示用户正在处理请稍等
2014/09/01 Javascript
jQuery中:animated选择器用法实例
2014/12/29 Javascript
chrome调试javascript详解
2015/10/21 Javascript
JS实现动态增加和删除li标签行的实例代码
2016/10/16 Javascript
AngularJS深入探讨scope,继承结构,事件系统和生命周期
2016/11/02 Javascript
jQuery实现标签页效果实战(4)
2017/02/08 Javascript
解决OneThink中无法异步提交kindeditor文本框中修改后的内容方法
2017/05/05 Javascript
Node.js  REPL (交互式解释器)实例详解
2017/08/06 Javascript
jQuery Easyui Treegrid实现显示checkbox功能
2017/08/08 jQuery
ES6中数组array新增方法实例总结
2017/11/07 Javascript
详解angular路由高亮之RouterLinkActive
2018/04/28 Javascript
详解React native fetch遇到的坑
2018/08/30 Javascript
js控制随机数生成概率代码实例
2019/03/21 Javascript
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
2020/04/11 Javascript
JavaScript中继承原理与用法实例入门
2020/05/09 Javascript
[01:30]DOTA2上海特锦赛现场采访 Loda倾情献唱
2016/03/25 DOTA
Python中itertools模块用法详解
2014/09/25 Python
Python多线程编程(六):可重入锁RLock
2015/04/05 Python
python冒泡排序简单实现方法
2015/07/09 Python
Python 安装setuptools和pip工具操作方法(必看)
2017/05/22 Python
unittest+coverage单元测试代码覆盖操作实例详解
2018/04/04 Python
Python的iOS自动化打包实例代码
2018/11/22 Python
Tensorflow之梯度裁剪的实现示例
2020/03/08 Python
python如何利用paramiko执行服务器命令
2020/11/07 Python
玖熙女鞋美国官网:Nine West
2016/10/06 全球购物
五年级科学教学反思
2014/02/05 职场文书
互联网电子商务专业毕业生求职信
2014/03/18 职场文书
户外宣传策划方案
2014/05/25 职场文书
班级团队活动方案
2014/08/14 职场文书
普通党员对照检查材料
2014/09/24 职场文书
SQL 窗口函数实现高效分页查询的案例分析
2021/05/21 SQL Server
Golang 遍历二叉树
2022/04/19 Golang