浅析MySQL中concat以及group_concat的使用

2023-10-27

吃水不忘挖井人系列

原帖地址:
浅析MySQL中concat以及group_concat的使用


说明:

本文中使用的例子均在下面的数据库表tt2下执行:

在这里插入图片描述

一、concat()函数
1、功能:将多个字符串连接成一个字符串。

2、语法:concat(str1, str2,…)

返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null。

3、举例:

例1:select concat (id, name, score) as info from tt2;
在这里插入图片描述

中间有一行为null是因为tt2表中有一行的score值为null。

例2:在例1的结果中三个字段id,name,score的组合没有分隔符,我们可以加一个逗号作为分隔符:
在这里插入图片描述

这样看上去似乎顺眼了许多~~

但是输入sql语句麻烦了许多,三个字段需要输入两次逗号,如果10个字段,要输入九次逗号…麻烦死了啦,有没有什么简便方法呢?——于是可以指定参数之间的分隔符的concat_ws()来了!!!

二、concat_ws()函数
1、功能:和concat()一样,将多个字符串连接成一个字符串,但是可以一次性指定分隔符~(concat_ws就是concat with separator)

2、语法:concat_ws(separator, str1, str2, …)

说明:第一个参数指定分隔符。需要注意的是分隔符不能为null,如果为null,则返回结果为null。

3、举例:

例3:我们使用concat_ws()将 分隔符指定为逗号,达到与例2相同的效果:
在这里插入图片描述

例4:把分隔符指定为null,结果全部变成了null:
在这里插入图片描述

三、group_concat()函数
前言:在有group by的查询语句中,select指定的字段要么就包含在group by语句的后面,作为分组的依据,要么就包含在聚合函数中。(有关group by的知识请戳:浅析SQL中Group By的使用)。

例5:
在这里插入图片描述

该例查询了name相同的的人中最小的id。如果我们要查询name相同的人的所有的id呢?

当然我们可以这样查询:

例6:
在这里插入图片描述

但是这样同一个名字出现多次,看上去非常不直观。有没有更直观的方法,既让每个名字都只出现一次,又能够显示所有的名字相同的人的id呢?——使用group_concat()

1、功能:将group by产生的同一个分组中的值连接起来,返回一个字符串结果。

2、语法:
group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator ‘分隔符’] )

说明:通过使用distinct可以排除重复值;如果希望对结果中的值进行排序,可以使用order by子句;separator是一个字符串值,缺省为一个逗号。

3、举例:

例7:使用group_concat()和group by显示相同名字的人的id号:
在这里插入图片描述

例8:将上面的id号从大到小排序,且用’_'作为分隔符:
在这里插入图片描述

例9:上面的查询中显示了以name分组的每组中所有的id。接下来我们要查询以name分组的所有组的id和score:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

浅析MySQL中concat以及group_concat的使用 的相关文章

随机推荐

  • NPN三极管和PNP三极管的工作原理

    记录一下 方便以后翻阅 学嵌入式还是要懂些电路知识的 NPN型三极管 由两块N型半导体中间夹着一块P型半导体组成 也称晶体三极管 是电子电路中最重要的器件 三极管的主要功能是电流放大和开关作用 可以把微弱的电信号变成一定强度的信号 三极管一
  • windows系统下安装Nginx以及简单使用(详解)

    一 背景 Nginx是一个很强大的高性能Web和反向代理服务 也是一种轻量级的Web服务器 可以作为独立的服务器部署网站 应用非常广泛 特别是现在前后端分离的情况下 而在开发过程中 我们常常需要在window系统下使用Nginx作为Web服
  • python-gRPC

    文章目录 python gRPC 一 简介 1 1 gRPC 1 2 protobuf 二 windows 环境下安装protobuf 2 1 下载环境包 2 2 解压缩 配置文件 2 3 验证是否安装成功 三 简单实例 3 1新建包 3
  • SonarQube 跳过指定检查

    ps 我使用了下面的项目过滤来做 因为一个项目会有多个分支 只想对部分项目来做过滤某些规则 这个规则还是有些重要的 环境 演示环境参考前边的文章 SonarQube 扫描 Java 代码 步骤 我们已经扫描一个 Java 项目 有 6 个
  • 九种查找算法-红黑树

    红黑树 2 3查找树能保证在插入元素之后能保持树的平衡状态 最坏情况下即所有的子节点都是2 node 树的高度为lgn 从而保证了最坏情况下的时间复杂度 但是2 3树实现起来比较复杂 于是就有了一种简单实现2 3树的数据结构 即红黑树 Re
  • idea搜索快捷键总结大全

    Ctrl F 是在本页查找 Ctrl Shift R是全局查找 Ctrl Shift N按文件名搜索文件 ctrl alt 鼠标左键 跳转到接口实现类 alt 7展示类结构 参考文献 idea全局搜索快捷键总结 小志的博客的博客 CSDN博
  • 特征提取方法——共空间模式(Common Spatial Pattern,CSP)算法原理与实现

    一 原理 公共空间模式 CSP 算法采用监督的方法创建一个最优的公共空间滤波器 在最大化一类方差的同时最小化另一类方差 采用同时对角化两类任务协方差矩阵的方式 得到可区分程度最大的特征向量 适用于二分类任务的特征提取 公共空间模式 CSP
  • RocketMQ 消息积压排错

    文章目录 RocketMQ 消息积压排错 场景描述 排查步骤 总结 其它知识点 查看磁盘IO 查看IO TOP 查看节点网络状况 RocketMQ Console TPS的计算方式 RocketMQ 消息积压排错 场景描述 消息积压5000
  • 洛谷P1605迷宫问题——python

    题目描述 给定一个 N M N times M N M 方格的迷宫 迷宫里有 T T T 处障碍 障碍处不可通过 在迷宫中移动有上下左右四种方
  • 前端vue经典面试题78道(重点详细简洁)

    目录 1 自我介绍 2 vue面试题 1 v show和v if区别的区别 2 为何v for要用key 3 描述vue组件声明周期mm 单组件声明周期图 父子组件生命周期图 4 vue组件如何通信 5 描述组件渲染和更新的过程 1 vue
  • Go语言学习16-特殊流程控制

    特殊流程控制 引言 特殊流程控制 1 defer语句 2 异常处理 2 1 error 2 2 panic 2 3 recover 结语 引言 上一篇博文介绍了 Go 语言的基本流程控制 本篇我们介绍 Go 语言的特殊流程控制 特殊流程控制
  • 【Java面试题汇总】多线程、JUC、锁篇(2023版)

    导航 黑马Java笔记 踩坑汇总 Java基础 JavaWeb SSM SpringBoot 瑞吉外卖 SpringCloud 黑马旅游 谷粒商城 学成在线 设计模式 牛客面试题 目录 0 请你说说线程和进程的区别 1 请你说说多线程 2
  • VS2010中打开VS2012的项目

    VS2012中对C 的支持度非常好 不管是编写方便程度 不需要插件就能高亮代码及代码自动提示功能 还对MFC的一些功能优化很多 我们可以修改两个工程文件来把VS2012的工程文件一直到VS2010中去 首先当然是修改解决方案文件 sln文件
  • 普通台式机上Tesla M40显卡paddleGPU深度学习柯南的变身器上机体验

    Tesla M40显卡上机体验 废话 正文 改电源线 放入显卡准备散热工具 尝试开机 开装驱动 cuda行列 paddlepaddlegpu版安装 上大佬的柯南变声器代码 本地运行 实测效果 提醒 购机需谨慎 免责声明 总结 改善 引导 废
  • design contains shelved or modified (but not repoured) polygons. the result....继续铺铜还是报警,解决方案如下:

    当AD21中出现 design contains shelved or modified but not repoured polygons the result of drc is not correct recommended to r
  • AAV相关研究最新进展(2023年5月)

    截至2022年11月22日 美国FDA宣布批准uniQure与CSL Behring合作研发的AAV基因疗法Hemgenix AMT 061 CSL222 上市 这是FDA批准的首款治疗血友病B成人患者的基因疗法 同时也是迄今为止第六款上市
  • mybatisplus连接sqlserver配置

    目录 前言 一 所需依赖 二 application yml 三 分页插件 前言 本文主要讲解连接sqlserver的配置 一 所需依赖
  • (一)Unity3D离散仿真引擎基础

    1 解释游戏对象 GameObjects 和资源 Assets 的区别与联系 游戏对象 游戏对象直接出现在游戏场景 scence 中 是资源整合的具体表现 游戏对象一般有玩家 敌人 游戏场景 摄像机等虚拟父类 这些父类没有实例化 而他们的子
  • 多个echarts 设置的graphic相互影响

    使用echarts构建了多个图形 并且能在同一个div中相互切换 其中一个饼状图设置了graphic 其他的没有设置 结果发现设置的echarts的graphic在其他图形上页显示了 如图所示 实际上柱状图是没有设置type为text的gr
  • 浅析MySQL中concat以及group_concat的使用

    吃水不忘挖井人系列 原帖地址 浅析MySQL中concat以及group concat的使用 说明 本文中使用的例子均在下面的数据库表tt2下执行 一 concat 函数 1 功能 将多个字符串连接成一个字符串 2 语法 concat st