MySQL函数:列转行CONCAT、CONCAT_WS、GROUP_CONCAT的使用(精要)

news2024/11/17 23:38:58

前言

很久没有接触Mysql了。

今天心血来潮,突然想了解一下Mysql列转行,看了一些文章,重点不清晰,遂有下文!

Mysql官网、 社区版下载( Windows版_mysql.8.0.31下载  )

概述

Mysql内部提供了列转行的三个函数,分别是:

CONCAT(str1,str2,...)

CONCAT_WS(separator,str1,str2,...)

GROUP_CONCAT(expr)

数据准备

数据如下,简单明了。

#1、查看原始数据
select * from student;  

 

如上图所示,3条数据,足以说明问题。 

案例解析

一、CONCAT(str1,str2,...)函数解析

首先,看到该函数的参数,str1和str2,立刻有种冲动,这两个参数应该看是任意字符串。

1、用concat函数,拼接任意字符串

select CONCAT('aaa',',','bbb') as info from dual;

 

 效果如图所示:concat可以用来拼接任意字符串,并自定义分隔符

2、用concat函数,把每行数据多列-->一行 

select CONCAT(s.id,',',s.name,',',s.age) as infos from student s;

3、 注意事项

如果,仅仅是想把表中单列数据,转换为一行,concat函数,就显得有些力不从心了,需要用到group_concat函数,下面第三小节,会有介绍! 

二、CONCAT_WS(separator,str1,str2,...)函数解析

从语法得知,separator是分隔符,后面str1和str2等等,是拼接字段。

不难理解,该函数只需指定一次分隔符即可。 

select CONCAT_WS('#',id,name,age )  as infos from student  ;

注意:比较遗憾的是,该CONCAT_WS函数依然不能让单列,转行!

术业有专攻,单例转行需下面的GROUP_CONCAT函数!

三、GROUP_CONCAT(expr)函数解析(重点

1、单例转行

select GROUP_CONCAT(name) as names from student ;

 

说明:本案例是对该函数简单的演示,sql后面依然可以带where group by等条件语句。 

2、拓展

select GROUP_CONCAT('111',name) as names from student ;
select GROUP_CONCAT(name,'222') as names from student ;
select GROUP_CONCAT('111',name,'222') as names from student ;

运行结果:

111succ,111chouniu,111succ
succ222,chouniu222,succ222
111succ222,111chouniu222,111succ222

 

总结

至此,CONCATCONCAT_WSGROUP_CONCAT三个函数的使用,基本介绍清楚,当然在实际开发中,场景会复杂很多。

欣慰的是,有了这三个函数的辅助,后期实现更为复杂的行转列,也将是如虎添翼!

尾言

MySql知识点太多,后期将会推出更多精要的mysql知识点,不出则已,出必为精品,不废话!

如果觉得有用,欢迎留言、点赞、收藏!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/77961.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

UNIAPP实战项目笔记50 登录和注册页面的布局

UNIAPP实战项目笔记50 登录和注册页面的布局 实际案例图片 登录页面布局 注册页面布局 显示登录和注册页面布局 页面布局的切换 具体内容图片自己替换哈&#xff0c;随便找了个图片的做示例 具体位置见目录结构 完善布局页面和样式 代码 login.vue部分 <template><v…

拉线援(AD PADS Cadence快捷键汇总)

年纪越大&#xff0c;记性就不太好了&#xff0c; 要干的活越多&#xff0c; 还要盯盘&#xff0c; 效率得提升一下。 总结下平时拉线容易用到的快捷键、评审资料等。 以后不断更新完善。 公众号发消息&#xff08;Download|拉线援&#xff09;可获得源文档。 一、Altium Desi…

水文气象站远程监测物联网系统,彰显水利治理智慧

我国在几千年的历史中都对水利设施建设十分重视&#xff0c;修建了各种类型的水利设施&#xff0c;在古代的生活、农业生产、防洪排水、漕运等多个方面发挥着非常重要的作用&#xff0c;如都江堰、郑国渠、坎儿井等设施更是青史留名。 到了现代&#xff0c;水资源治理依旧是民生…

开源SCRM营销平台-MarketGo产品介绍(二)

1、MarketGo概述 MarketGo中国式营销自动化开源项目标杆。 MarketGo更像是一个 SDK 、引擎&#xff0c;通过提供的标准化功能和基础能力&#xff0c;让开发者能快速搭建一个营销自动化系统&#xff0c;快速完成从0-1的过程&#xff0c;并且能基于开放的能力和源码&#xff0c…

爱了、阿里巴巴 JAVA 岗发布,最新内部面试题(含 P5-P7)

不少人对阿里巴巴技术岗的体系结构及级别的技术要求设置不太清楚&#xff0c;想去面试心里没底&#xff0c;下面简单介绍一下阿里 P5-P7 技术岗要求体系以及为大家分享一份涵盖阿里巴巴 P5-P7 的完整面试题&#xff01; 阿里 P5(高级研发工程师) 工作要求&#xff1a; 能独立…

容器的常用方法和线程安全(Map、List、Queue)

一、Map 1. HashTable 线程安全的Map&#xff0c;用synchronized锁 2. Collections.synchronizedMap Collections.synchronizedMap(new HashMap()) 可以把HashMap变成线程安全的&#xff0c;锁粒度比HashTable稍微小一点 3. ConcurrentHashMap ConcurrentHashMap主要提高…

【C++】STL - vector使用和模拟实现

&#x1f431;作者&#xff1a;傻响 &#x1f431;专栏&#xff1a;《C/C - STL》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; ​ 目录 No.1.vector的介绍及使用 1.1 vector的介绍 1.2 vector的接口 vector的构造函数接口 vector的…

最近很火的电视剧《点燃我,温暖你》男主角学神和女主角课代表计算机考试实现的跳动的爱心,全程用代码复原真实的实现

最近很火的电视剧《点燃我&#xff0c;温暖你》男主角学神和女主角课代表计算机考试实现的跳动的爱心&#xff0c;全程用代码复原真实的实现。 学神考试100分&#xff0c;只是因为试卷只有100分&#xff01; 该剧改编自作家Twentine创作的小说《打火机与公主裙》&#xff0c;讲…

微服务框架 SpringCloud微服务架构 微服务保护 31 限流规则 31.5 流控效果【排队等待】

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 微服务保护 文章目录微服务框架微服务保护31 限流规则31.5 流控效果【排队等待】31.5.1 流控效果【排队等待】31.5.2 案例31.5.3 总结31 限流…

JAVA物业管理系统带小程序源码

源码分享&#xff01;文末卡片查看联系方式获取源码。 基于Web&#xff0c;使用MySQL数据库&#xff0c;使用安全框架&#xff1a;shiro, 使用技术&#xff1a;springspringMVCMybatis&#xff0c;小程序 前端框架&#xff1a;layui 编译器&#xff1a;IntelliJ IDEA 项目构…

Linux消息中间件-RabbitMQ

Linux消息中间件-RabbitMQ 消息中间件 MQ简介 MQ 全称为Message Queue, 消息队列。是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息&#xff08;针对应用程序的数据&#xff09;来通信&#xff0c;而无需专用连接来链接它们。消息传递指的是程序之间通…

Python字符串关键点分析介绍

Python字符串关键点有下面几点&#xff1a; 1.一些引号分隔的字符 你可以把字符串看出是Python的一种数据类型&#xff0c;在Python单引号或者双引号之间的字符数组或者连续的字符集合。在python中最常用的引号为&#xff08;’’&#xff09;和("")。两者的功能是一…

笔试强训(四十一)

目录一、选择题二、编程题2.1 Emacs计算器2.1.1 题目2.1.1 题解一、选择题 &#xff08;1&#xff09;某主机的IP地址为180.80.77.55&#xff0c;子网掩码为255.255.252.0.若该主机向其所在子网发送广播分组&#xff0c;则目的地址可以是&#xff08;D&#xff09; A.180.80.7…

【mmdetection系列】mmdetection之训练框架讲解

这一篇是一个比较宽泛的训练框架讲解与说明。会大致说一些模型训练过程中需要的一些模块&#xff0c;datasets、backbone、neck、head、loss等。会先将框架结构&#xff0c;再讲核心机制。 目录 1.框架结构 1.1 configs 1.1.1 训练配置 1.1.2 datasets 1.1.3 models 1.1.…

【Python】基本语法 4 (列表和元组)

列表和元组1. 列表是什么&#xff0c;元组是什么2. 创建列表3. 访问下标4. 切片操作5. 遍历列表元素6. 新增元素7. 查找元素8. 删除元素9. 连接元素10. 关于元组1. 列表是什么&#xff0c;元组是什么 在编程中&#xff0c;变量就是内存空间&#xff0c;用来表示/存储数据。 如果…

java之注解的定义和使用

初识注解&#xff1a; 注解的概念&#xff1a; 注解是从JDK5.0开始引入的新技术&#xff0c;它不是程序本身&#xff0c;但是和注释有相同的作用&#xff0c;都能够对程序做出一定的解释&#xff0c;并且注解能够被其他编译器所读取 注解的格式&#xff1a; 注解是以“注释…

代码随想录训练营第43天|LeetCode 1049. 最后一块石头的重量 II、494. 目标和、474.一和零

参考 代码随想录 题目一&#xff1a;LeetCode 1049. 最后一块石头的重量 II 这个题和之前的“416 分割等和子集”非常的类似&#xff0c;如果给出的stones[]数组能被分成相等的两个数组&#xff0c;那么剩余石头的最小重量就是0。求解思路和分割等和子集一样&#xff0c;只是…

前端工程化实践——javaScript 手写rollup

webpack打包非常繁琐&#xff0c;打包体积较大。rollup主要打包js库。vue/react/angular都在用rollup作为打包工具。 rollup项目初体验 新增文件夹rollupTest 初始化项目&#xff1a;npm init -y 安装依赖 npm install rollup -D 修改配置文件package.json {"name&q…

Python模块fileinput操作文件和目录操作总结

前言 之前介绍Python的 pathlib 模块可以有效的路径及文件查找等方便操作&#xff0c;本篇介绍一个相对 readlines() 获取文件内容更高效的用法 fileinput模块 对一个或者多个文件的内容迭代遍历&#xff08;类似文件操作的readlines()&#xff09;,但是返回的是迭代对象&…

ffmpeg库编译安装及入门指南(Windows篇)- 2022年底钜献

最近项目需要&#xff0c;使用了 ffmpeg 做摄像头视频采集和串流。这几天有点时间&#xff0c;打算把相关的一些知识记录分享一下。 在撰写本文时&#xff0c;我又在另外一台电脑上把 ffmpeg 重新安装了一遍&#xff0c;所以绝对真实靠谱&#xff01;如果你觉得文章写得还不错…