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 10 MySQL
MySQL 自定义变量的概念及特点
May 13 MySQL
MySQL不使用order by实现排名的三种思路总结
Jun 02 MySQL
MySQL库表名大小写的选择
Jun 05 MySQL
MySQL非空约束(not null)案例讲解
Aug 23 MySQL
MyBatis 动态SQL全面详解
Oct 05 MySQL
MySQL对数据表已有表进行分区表的实现
Nov 01 MySQL
MySQL学习必备条件查询数据
Mar 25 MySQL
MySQL数据库Innodb 引擎实现mvcc锁
May 06 MySQL
Mysql将字符串按照指定字符分割的正确方法
May 30 MySQL
jdbc中自带MySQL 连接池实践示例
Jul 23 MySQL
MySQL新手入门进阶语句汇总
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 中的str_replace 函数总结
2007/04/27 PHP
PHPwind整合最土系统用户同步登录实现方法
2010/12/08 PHP
php中3种方法删除字符串中间的空格
2014/03/10 PHP
php array_map使用自定义的函数处理数组中的每个值
2016/10/26 PHP
CSS中简写属性要注意TRouBLe的顺序问题(避免踩坑)
2021/03/09 HTML / CSS
ASP中用Join和Array,可以加快字符连接速度的代码
2007/08/22 Javascript
javascript 函数调用的对象和方法
2010/07/01 Javascript
ExtJs GridPanel简单的增删改实现代码
2010/08/26 Javascript
使用基于jquery的gamequery插件做JS乒乓球游戏
2011/07/31 Javascript
form.submit()不能提交表单的错误原因及解决方法
2014/10/13 Javascript
jQuery焦点控制图层展示延迟隐藏的方法
2015/03/09 Javascript
JavaScript实现将xml转换成html table表格的方法
2015/04/17 Javascript
require.js的用法详解
2015/10/20 Javascript
JS 日期与时间戮相互转化的简单实例
2016/06/22 Javascript
微信小程序与php 实现微信支付的简单实例
2017/06/23 Javascript
详解如何在你的Vue项目配置vux
2018/06/04 Javascript
通过实例讲解JS如何防抖动
2019/06/15 Javascript
webpack 如何解析代码模块路径的实现
2019/09/04 Javascript
如何利用node.js开发一个生成逐帧动画的小工具
2019/12/01 Javascript
JavaScript实现矩形块大小任意缩放
2020/08/25 Javascript
JavaScript实现移动小精灵的案例代码
2020/12/12 Javascript
python中input()与raw_input()的区别分析
2016/02/27 Python
Python实现Linux中的du命令
2017/06/12 Python
python 执行shell命令并将结果保存的实例
2018/05/11 Python
python版本单链表实现代码
2018/09/28 Python
Python 导入文件过程图解
2019/10/15 Python
python使用PIL剪切和拼接图片
2020/03/23 Python
python 实现波浪滤镜特效
2020/12/02 Python
台湾专柜女包:KINAZ
2019/12/26 全球购物
最新大学生自我评价
2013/09/24 职场文书
《临死前的严监生》教学反思
2014/02/13 职场文书
车辆转让协议书
2014/04/15 职场文书
煤矿安全生产月活动总结
2014/07/05 职场文书
企业财务管理制度范本
2015/08/04 职场文书
纪律委员竞选稿
2015/11/19 职场文书
如何搭建 MySQL 高可用高性能集群
2021/06/21 MySQL