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 06 MySQL
MySQL kill不掉线程的原因
May 07 MySQL
MySQL查询学习之基础查询操作
May 08 MySQL
mysql 8.0.24 安装配置方法图文教程
May 12 MySQL
Mysql基础知识点汇总
May 26 MySQL
MySQL 数据类型选择原则
May 27 MySQL
MySQL中存储时间的最佳实践指南
Jul 01 MySQL
浅谈redis的过期时间设置和过期删除机制
Mar 18 MySQL
Mysql 文件配置解析介绍
May 06 MySQL
MySQL存储过程及语法详解
Aug 05 MySQL
DQL数据查询语句使用示例
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数组函数序列之sort() 对数组的元素值进行升序排序
2011/11/02 PHP
支持中文的php加密解密类代码
2011/11/27 PHP
php+mysql查询优化简单实例
2015/01/13 PHP
PHP IDE phpstorm 常用快捷键
2015/05/18 PHP
WordPress中用于获取文章作者与分类信息的方法整理
2015/12/17 PHP
详解PHP的Yii框架中的Controller控制器
2016/03/29 PHP
zen cart实现订单中增加paypal中预留电话的方法
2016/07/12 PHP
yii2使用gridView实现下拉列表筛选数据
2017/04/10 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
ThinkPHP5.1+Ajax实现的无刷新分页功能示例
2020/02/10 PHP
jquery中的 $("#jb51")与document.getElementById("jb51") 的区别
2011/07/26 Javascript
JQuery触发事件例如click
2013/09/11 Javascript
怎么选择Javascript框架(Javascript Framework)
2013/11/22 Javascript
神奇!js+CSS+DIV实现文字颜色渐变效果
2016/03/16 Javascript
微信小程序 开发工具快捷键整理
2016/10/31 Javascript
原生javascript实现分页效果
2017/04/21 Javascript
关于axios不能使用Vue.use()浅析
2018/01/12 Javascript
基于打包工具Webpack进行项目开发实例
2018/05/29 Javascript
vue实现分页组件
2020/06/16 Javascript
JS字符串常用操作方法实例小结
2019/06/24 Javascript
如何在vue 中使用柱状图 并自修改配置
2021/01/21 Vue.js
python判断设备是否联网的方法
2018/06/29 Python
使用Python OpenCV为CNN增加图像样本的实现
2019/06/10 Python
python单向循环链表原理与实现方法示例
2019/12/03 Python
tensorflow 模型权重导出实例
2020/01/24 Python
python中return不返回值的问题解析
2020/07/22 Python
小学语文教学反思
2014/02/10 职场文书
会计自荐信范文
2014/03/09 职场文书
应届生求职信范文
2014/05/26 职场文书
广播体操口号
2014/06/18 职场文书
一般党员对照检查材料
2014/09/24 职场文书
2014年维修工作总结
2014/11/22 职场文书
2014年化妆品销售工作总结
2014/12/01 职场文书
JS实现简单控制视频播放倍速的实例代码
2021/04/18 Javascript
Python实现信息轰炸工具(再也不怕说不过别人了)
2021/06/11 Python
MySQL池化框架学习接池自定义
2022/07/23 MySQL