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的版本
May 19 MySQL
IDEA 链接Mysql数据库并执行查询操作的完整代码
May 20 MySQL
MySQL中使用or、in与union all在查询命令下的效率对比
May 26 MySQL
MySQL 数据恢复的多种方法汇总
Jun 21 MySQL
一文弄懂MySQL索引创建原则
Feb 28 MySQL
MySQL高级进阶sql语句总结大全
Mar 16 MySQL
MySQL创建表操作命令分享
Mar 25 MySQL
MySQL 数据库 增删查改、克隆、外键 等操作
May 11 MySQL
MySQL数据库实验实现简单数据库应用系统设计
Jun 21 MySQL
Mysql数据库group by原理详解
Jul 07 MySQL
MySQL事务的ACID特性以及并发问题方案
Jul 15 MySQL
mysql函数之截取字符串的实现
Aug 14 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
跟我学小偷程序之成功偷取首页(第三天)
2006/10/09 PHP
PHP 引用是个坏习惯
2010/03/12 PHP
set_include_path和get_include_path使用及注意事项
2013/02/02 PHP
使用HMAC-SHA1签名方法详解
2013/06/26 PHP
php分页函数完整实例代码
2014/09/22 PHP
浅谈PHP中foreach/in_array的使用
2015/11/02 PHP
学习php设计模式 php实现适配器模式
2015/12/07 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
thinkphp5修改view到根目录实例方法
2019/07/02 PHP
测试JavaScript字符串处理性能的代码
2009/12/07 Javascript
DD_belatedPNG,IE6下PNG透明解决方案(国外)
2010/12/06 Javascript
javascript实现的弹出层背景置灰-模拟(easyui dialog)
2013/12/27 Javascript
javascript实现数字验证码的简单实例
2014/02/10 Javascript
基于CSS3和jQuery实现跟随鼠标方位的Hover特效
2016/07/25 Javascript
AngularJs Dependency Injection(DI,依赖注入)
2016/09/02 Javascript
详解JS异步加载的三种方式
2017/03/07 Javascript
使用Bootstrap打造特色进度条效果
2017/05/02 Javascript
vue2.0中click点击当前li实现动态切换class
2017/06/21 Javascript
js + css实现标签内容切换功能(实例讲解)
2017/10/09 Javascript
微信小程序wx:for循环的实例详解
2018/10/07 Javascript
为什么Vue3.0使用Proxy实现数据监听(defineProperty表示不背这个锅)
2019/10/14 Javascript
Python字符编码与函数的基本使用方法
2017/09/30 Python
使用Python Pandas处理亿级数据的方法
2019/06/24 Python
python 批量解压压缩文件的实例代码
2019/06/27 Python
django表单的Widgets使用详解
2019/07/22 Python
pytorch 输出中间层特征的实例
2019/08/17 Python
使用keras和tensorflow保存为可部署的pb格式
2020/05/25 Python
Jupyter Notebook 安装配置与使用详解
2021/01/06 Python
欧克利英国官网:Oakley英国
2019/08/24 全球购物
普天C++笔试题
2016/03/20 面试题
解释DataSet(ds) 和 ds as DataSet 的含义
2014/07/27 面试题
挖掘机司机岗位职责
2014/02/12 职场文书
羽毛球比赛策划方案
2014/06/13 职场文书
食品安全汇报材料
2014/08/18 职场文书
SpringBoot工程下使用OpenFeign的坑及解决
2021/07/02 Java/Android
《原神》新角色演示“神里绫人:林隐泓洄” 宠妹狂魔
2022/04/03 其他游戏