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 sql_mode修改不生效的原因及解决
May 07 MySQL
Mysql中调试存储过程最简单的方法
Jun 30 MySQL
mysql分表之后如何平滑上线详解
Nov 01 MySQL
一篇文章看懂MySQL主从复制与读写分离
Nov 07 MySQL
MySQL数据库优化之通过索引解决SQL性能问题
Apr 10 MySQL
MySQL创建管理HASH分区
Apr 13 MySQL
MySQL 表锁定 LOCK和UNLOCK TABLES的 SQL语法
Apr 18 MySQL
mysql 乱码 字符集latin1转UTF8
Apr 19 MySQL
MySQL 逻辑备份 into outfile
May 15 MySQL
mysqldump进行数据备份详解
Jul 15 MySQL
MySQL count(*)统计总数问题汇总
Sep 23 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 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
2010/08/01 PHP
PHP文件上传、客户端和服务器端加限制、抓取错误信息、完整步骤解析
2017/01/12 PHP
Javascript之文件操作
2007/03/07 Javascript
JavaScript中继承的一些示例方法与属性参考
2010/08/07 Javascript
jquery live()重复绑定的解决方法介绍
2014/01/03 Javascript
使用POST方式弹出窗口的两种方法示例介绍
2014/01/29 Javascript
Javascript学习笔记之数组的构造函数
2014/11/23 Javascript
jQuery CSS3相结合实现时钟插件
2016/01/08 Javascript
基于javascript实现泡泡大冒险网页版小游戏
2016/03/23 Javascript
js实现楼层效果的简单实例
2016/07/15 Javascript
js控住DOM实现发布微博效果
2016/08/30 Javascript
javascript self对象使用详解
2016/10/18 Javascript
微信小程序 网络API发起请求详解
2016/11/09 Javascript
[原创]JS基于FileSaver.js插件实现文件保存功能示例
2016/12/08 Javascript
简单实现jQuery多选框功能
2017/01/09 Javascript
jQuery Validation Engine验证控件调用外部函数验证的方法
2017/01/18 Javascript
对于Javascript 执行上下文的全面了解
2017/09/05 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
2018/02/09 Javascript
JS模拟实现哈希表及应用详解
2018/05/04 Javascript
Vue引用Swiper4插件无法重写分页器样式的解决方法
2018/09/27 Javascript
加速vue组件渲染之性能优化
2020/04/09 Javascript
[45:59]EG vs OG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python中二维阵列的变换实例
2014/10/09 Python
Python使用multiprocessing创建进程的方法
2015/06/04 Python
在类Unix系统上开始Python3编程入门
2015/08/20 Python
详细分析python3的reduce函数
2017/12/05 Python
Python 二叉树的层序建立与三种遍历实现详解
2019/07/29 Python
浅析python,PyCharm,Anaconda三者之间的关系
2019/11/27 Python
如何基于Python创建目录文件夹
2019/12/31 Python
python开发实例之python使用Websocket库开发简单聊天工具实例详解(python+Websocket+JS)
2020/03/18 Python
全网首秀之Pycharm十大实用技巧(推荐)
2020/04/27 Python
keras实现基于孪生网络的图片相似度计算方式
2020/06/11 Python
Django创建一个后台的基本步骤记录
2020/10/02 Python
Python如何使用ConfigParser读取配置文件
2020/11/12 Python
赡养老人协议书范本
2015/08/06 职场文书
消防安全主题班会
2015/08/12 职场文书