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 14 MySQL
Mysql 如何实现多张无关联表查询数据并分页
Jun 05 MySQL
MySQL 常见的数据表设计误区汇总
Jun 07 MySQL
Mysql 如何查询时间段交集
Jun 08 MySQL
解决mysql的int型主键自增问题
Jul 15 MySQL
MySQL中连接查询和子查询的问题
Sep 04 MySQL
MySQL分区表实现按月份归类
Nov 01 MySQL
mysql创建存储过程及函数详解
Dec 04 MySQL
mysql中整数数据类型tinyint详解
Dec 06 MySQL
MySQL中一条SQL查询语句是如何执行的
Apr 08 MySQL
MySQL实现字段分割一行转多行的示例代码
Jul 07 MySQL
mysql sock 文件解析及作用讲解
Jul 15 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连接MySQL代码的参数说明
2008/06/07 PHP
PHP独立Session数据库存储操作类分享
2014/06/11 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十五)
2014/06/30 PHP
[原创]php正则删除html代码中class样式属性的方法
2017/05/24 PHP
JavaScript 字符串处理函数使用小结
2010/12/02 Javascript
cnblogs 代码高亮显示后的代码复制问题解决实现代码
2011/12/14 Javascript
解析img图片没找到onerror事件 Stack overflow at line: 0
2013/12/23 Javascript
js之ActiveX控件使用说明 new ActiveXObject()
2014/03/03 Javascript
jQuery setTimeout传递字符串参数报错的解决方法
2014/06/09 Javascript
JS+CSS实现自动改变切换方向图片幻灯切换效果的方法
2015/03/02 Javascript
Markdown+Bootstrap图片自适应属性详解
2016/05/21 Javascript
jQuery特殊符号转义的实现
2016/11/30 Javascript
微信小程序 css使用技巧总结
2017/01/09 Javascript
vue-router 组件复用问题详解
2018/01/22 Javascript
element-ui上传一张图片后隐藏上传按钮功能
2019/05/22 Javascript
node.js基础知识汇总
2020/08/25 Javascript
python二叉树的实现实例
2013/11/21 Python
python的三目运算符和not in运算符使用示例
2014/03/03 Python
python中常用的各种数据库操作模块和连接实例
2014/05/29 Python
Python设置默认编码为utf8的方法
2016/07/01 Python
Python解析json之ValueError: Expecting property name enclosed in double quotes: line 1 column 2(char 1)
2017/07/06 Python
python如何读写json数据
2018/03/21 Python
selenium python 实现基本自动化测试的示例代码
2019/02/25 Python
Python2和3字符编码的区别知识点整理
2019/08/08 Python
利用python Selenium实现自动登陆京东签到领金币功能
2019/10/31 Python
Python 依赖库太多了该如何管理
2019/11/08 Python
Python3和PyCharm安装与环境配置【图文教程】
2020/02/14 Python
python如何调用字典的key
2020/05/25 Python
如何使用python自带IDLE的几种方法
2020/10/10 Python
即时搜索数百万张门票:SeatsForEveryone.com
2018/08/26 全球购物
学生会竞选自荐信
2013/10/12 职场文书
中国梦我的梦演讲稿
2014/04/23 职场文书
农村优秀教师事迹材料
2014/08/27 职场文书
2014年幼儿园重阳节活动方案
2014/09/16 职场文书
公司催款律师函
2015/05/27 职场文书
pytorch损失反向传播后梯度为none的问题
2021/05/12 Python