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 05 MySQL
MySQL Shell的介绍以及安装
Apr 24 MySQL
解决MySQL存储时间出现不一致的问题
Apr 28 MySQL
MySQL大小写敏感的注意事项
May 24 MySQL
如何设计高效合理的MySQL查询语句
May 26 MySQL
MySQL系列之十 MySQL事务隔离实现并发控制
Jul 02 MySQL
SQL实现LeetCode(197.上升温度)
Aug 07 MySQL
mysql创建存储过程及函数详解
Dec 04 MySQL
MySQL优化及索引解析
Mar 17 MySQL
MySQL学习之基础命令实操总结
Mar 19 MySQL
MySQL 数据库范式化设计理论
Apr 22 MySQL
MySQL实现用逗号进行拼接、以逗号进行分割
Dec 24 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代码质量36计
2012/09/05 PHP
PHP创建桌面快捷方式的实例代码
2014/02/17 PHP
destoon官方标签大全
2014/06/20 PHP
PHP获取QQ达人QQ信息的方法
2015/03/05 PHP
使用PHP如何实现高效安全的ftp服务器(一)
2015/12/20 PHP
JavaScript的面向对象(一)
2006/11/09 Javascript
ArrayList类(增强版)
2007/04/04 Javascript
Javascript 通过json自动生成Dom的代码
2010/04/01 Javascript
最新的10款jQuery内容滑块插件分享
2011/09/18 Javascript
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
2011/11/21 Javascript
jquery动画3.创建一个带遮罩效果的图片走廊
2012/08/24 Javascript
jquery mobile 实现自定义confirm确认框效果的简单实例
2016/06/17 Javascript
用自定义图片代替原生checkbox实现全选,删除以及提交的方法
2016/10/18 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
webpack学习教程之publicPath路径问题详解
2017/06/17 Javascript
详解vue.js的事件处理器v-on:click
2017/06/27 Javascript
react实现换肤功能的示例代码
2018/08/14 Javascript
vue-cli脚手架引入弹出层layer插件的几种方法
2019/06/24 Javascript
JS阻止事件冒泡的方法详解
2019/08/26 Javascript
vue项目里面引用svg文件并给svg里面的元素赋值
2020/08/17 Javascript
Python中标准库OS的常用方法总结大全
2017/07/19 Python
python数字图像处理之骨架提取与分水岭算法
2018/04/27 Python
使用Python快速制作可视化报表的方法
2019/02/03 Python
在自动化中用python实现键盘操作的方法详解
2019/07/19 Python
tensorflow-gpu安装的常见问题及解决方案
2020/01/20 Python
Python decimal模块使用方法详解
2020/06/08 Python
python使用建议与技巧分享(二)
2020/08/17 Python
python speech模块的使用方法
2020/09/09 Python
您的时尚,您的生活方式:DTLR Villa
2019/12/25 全球购物
中国一家综合的外贸B2C电子商务网站:DealeXtreme(DX)
2020/03/10 全球购物
用C#语言写出与SQLSERVER访问时的具体过程
2013/04/16 面试题
法学个人求职信范文
2014/01/27 职场文书
宾馆总经理岗位职责
2014/02/14 职场文书
物理系毕业生自荐书范文
2014/02/22 职场文书
毕业生求职自荐书范文
2014/03/27 职场文书
Windows Server 2022 超融合部署(图文教程)
2022/06/25 Servers