MySQL使用GROUP_CONCAT分组拼接
GROUP_CONCAT用途
实现某个字段按分组结果拼接。
举个例子:
现有一个班级表、学生表,需要列出每个班级的学生名,按逗号拼接显示。
实现
构建班级表
- 创建表结构
CREATE TABLE `t_class` (`id` int(0) NOT NULL AUTO_INCREMENT,`class_name` varchar(255) NULL DEFAULT NULL,`created_on` datetime(0) NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
- 数据初始化
INSERT INTO `t_class`(`id`, `class_name`, `created_on`) VALUES (1, '一班', '2020-08-13 14:25:01');
INSERT INTO `t_class`(`id`, `class_name`, `created_on`) VALUES (2, '二班', '2020-08-13 14:25:01');
INSERT INTO `t_class`(`id`, `class_name`, `created_on`) VALUES (3, '三班', '2020-08-13 14:25:01');
构建学生表
- 创建表结构
CREATE TABLE `t_student` (`id` int(0) NOT NULL AUTO_INCREMENT,`name` varchar(255) NULL DEFAULT NULL,`age` int(0) NULL DEFAULT NULL,`class_id` int(0) NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
- 数据初始化
INSERT INTO `test`.`t_student`(`id`, `name`, `age`, `class_id`) VALUES (1, '小东', 25, 1);
INSERT INTO `test`.`t_student`(`id`, `name`, `age`, `class_id`) VALUES (2, '小明', 26, 2);
INSERT INTO `test`.`t_student`(`id`, `name`, `age`, `class_id`) VALUES (3, '小红', 22, 3);
INSERT INTO `test`.`t_student`(`id`, `name`, `age`, `class_id`) VALUES (4, '小丽', 24, 2);
INSERT INTO `test`.`t_student`(`id`, `name`, `age`, `class_id`) VALUES (5, '张三', 24, 2);
INSERT INTO `test`.`t_student`(`id`, `name`, `age`, `class_id`) VALUES (6, '李四', 25, 3);
INSERT INTO `test`.`t_student`(`id`, `name`, `age`, `class_id`) VALUES (7, '王五', 24, 1);
查询结果
select a.*, GROUP_CONCAT(b.name) as studentNames
from t_class a
left join t_student b on b.class_id = a.id
group by a.id
- 结果如下,studentNames字段为拼接结果
MySQL使用GROUP_CONCAT分组拼接相关推荐
- mysql在GROUP_CONCAT中拼接字符串
1.在 GROUP_CONCAT 函数中拼接字符串直接使用 + 是不行的,会报错: 2.在 GROUP_CONCAT 函数中拼接字符串要用 CONCAT 函数或者 CONCAT_WS 函数,并且在使用 ...
- MySQL使用GROUP_CONCAT()函数按ID分组将多条记录的某个字段以逗号或者指定分隔号隔开成一条记录
MySQL使用GROUP_CONCAT()函数按ID分组将多条记录的某个字段以逗号或者指定分隔号隔开成一条记录 MySQL 2014-08-27 26945阅读 0评论 0收藏 收藏本文 这篇 ...
- sqlserver的for xml path和mysql的group_concat的区别
前几天遇到公司更换数据库,将sqlserver更改为mysql,更改完后发现后台sql报错,是一个关于多行转换成一行的SQL问题,度娘告知for xml path只适用于sqlserver,并不适用于 ...
- 聊一聊Mysql中的字符串拼接函数
生死看淡,上来就干! 简单来说,Mysql中的字符串拼接函数主要有三个,分别是CONCAT().CONCAT_WS()以及GROUP_CONCAT():废话不多说,下面就每个函数具体来看一下: 1.C ...
- oracle使用wm_concat 进行分组拼接
oracle 的wm_concat 和mysql 的group_concat类似,主要是先分组,然后将分组后输入同组的的内容用","拼接在一期 例子: SELECT a.perio ...
- mysql之group_concat函数
mysql之group_concat函数 在介绍GROUP_CONCAT之前,我们先来看看concat()函数和concat_ws()函数. 先准备一个测试数据库: mysql> select ...
- java mysql 动态sql_Java下拼接运行动态SQL语句
Java拼接动态SQL的一般做法有 1.使用动态语句 非常多数据库都提供了处理动态SQL的语法,如Oracle的EXECUTE IMMEDIATE语句.MSSQL的EXEC和SP_EXECUTESQL ...
- mysql中group_concat函数_MySQL中group_concat函数
为什么我要学习该函数,我在做控制页面的权限的时候,没有使用Shiro框架[强烈推荐使用], 为了降低学习成本,暂时给学生过渡的想法,我需要控制到按钮级别的权限,我的想法是通过Jquery对我的页面中的 ...
- MySQL用逗号进行拼接、以逗号进行分割
MySQL中,把查询的结果拼接成一个字符串. group_concat 函数 用法:group_concat (待拼接对象) 输出:用逗号进行拼接后的字符串 例子: select group_conc ...
最新文章
- C# 开发微信扫码登录
- C# Email邮件发送,功能是密码找回或者重置功能。
- OPEN ERP相关财务的基本概念
- 青龙羊毛——放羊娃(教程)
- Windows PE 重定位表编程(枚举重定位地址)
- SAP ABAP二分查找(binary search)实际问题的深度分析
- Linux设置root默认密码
- 如何从USB运行Windows 8 Developer Preview
- 【LeetCode笔记】143. 重排链表(Java、链表、栈、快慢指针)
- python替代hadoop_Python连接Hadoop数据中遇到的各种坑(汇总)
- HTML5 History API让ajax能回退到上一页
- python调用cplex_python 调用cplex(设置 CPLEX 的 Python API)
- 学习如何在matlab用带通滤波器进行滤波
- wps序号打乱重新排序_wps表格序号自动排列
- 排序算法c语言描述---基数排序
- 反走样知识简单分享-计算机图形学
- Dijkstra最短路由算法,求任意两点之间的最短距离【Java】
- 使用java开发spark实战
- 淘宝API接口系列,获取购买到的商品订单列表,卖出的商品订单列表,订单详情,订单物流,买家信息,收货地址列表,买家token
- 实力踩坑:There is no getter for property named ‘XXX‘ ‘class XXX‘
热门文章
- ABAP程序打印Spool Request到PDF
- SAP生产订单状态详解
- 自新建表包含货币金额类型和数量类型时报错问题。
- 求职受性别限制?数据指明2021女性求职新方向
- 青瓷游戏上市首日破发,“元宇宙光环”能否拯救年内首支游戏股?
- 疫情之后,出行市场的春天还有多远?
- catia v5r24 计算机id,catia v5r24 r25 r26安装教程.ppt
- android时间轴左右交叉布局,快速简单的定制一个时间轴布局(LinearLayout)
- 指针不显示 upupw_Go高级编程:指针和内存分配详解
- 攻防世界(pwn)--Mary_Morton 利用格式化字符串+栈溢出破解Canary的保护机制