当前位置: 首页 > news >正文

MySQL中concat()、concat_ws()、group_concat()函数使用

在平时工作中,经常记不清或者记混他们的用法,正好有时间就记录一下~

  1. concat()函数

语法:concat(str1, str2, int1...)

例如执行sql:

SELECT CONCAT(id,USERNAME,USER_PHONE) FROM tb_user输出查询结果为:
1test15216756754
192Test17051331386
193德庄火锅1113773670133
194南通印象13773707311
195辣五味13862768650

那如果拼接的有null值:

SELECT CONCAT(id,USERNAME,null) FROM tb_user输出查询结果为:
null
null
null
null

结果则为null。concat()可以拼接string/int类型。但是拼接null会得到null值。

  1. concat_ws()函数

和concat()不同的是concat_ws() 可以指定分隔符,concat_ws就是concat with separator。

注意separator不能为null,否则结果将会为null。

语法:concat_ws(separator, str1, str2, ...)

concat_ws()指定分隔符,用法如下:

SELECT CONCAT_WS('-',id,USERNAME,0,USER_EMAIL) FROM tb_user输出查询结果为:
1-test-0-qliuqian@163.com
192-Test-0-
193-德庄火锅-0-xx@xx.com
194-南通印象-0-xx@xx.com

concat()拼接null值会得到null值,concat_ws()拼接null值会忽略null值。

  1. group_concat()函数

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

注意:1.[]非必选项

2.group_concat只有与group by语句同时使用才能产生效果,否则所有数据会被合并成一行

3.distinct用于对拼接的结果去重;separator是一个字符串值,缺省为一个逗号。

接下来就展示group_concat()的简单用法。

我以我们公司的某个数据库的项目表为主,作为演示。

案例1

根据区域分组统计区域内的项目名称,且进行降序排序

SELECT
project_region_area,
GROUP_CONCAT(distinct `name` order by `name` desc separator '-')
FROM tah_project
GROUP BY project_region_area输出查询结果为:
冀中区    张家口·蔚县·中节能-保定·涞水·中节能-任丘·议论堡·深能源
冀北区    天津·北辰·浙能-唐山·曹妃甸·中交-唐山·乐亭·浙能-唐山·丰润·浙能
冀南区    阳泉·郊区·锦江-邯郸·永年·中电-邢台·威县·深能源-衡水·冀州·泰达
冀西区    石家庄·行唐·中节能-石家庄·栾城·中节能-石家庄·无极·锦江
案例2

在案例1的基础上,项目名称加上项目ID展示(函数嵌套使用)

SELECT
project_region_area,
GROUP_CONCAT(CONCAT_WS('-', id, name) order by id desc)
FROM tah_project
GROUP BY project_region_area输出查询结果为:
冀中区    189-张家口·蔚县·中节能,134-任丘·议论堡·深能源,133-保定·涞水·中节能
冀北区    176-唐山·曹妃甸·中交,123-天津·北辰·浙能,122-唐山·乐亭·浙能,115-唐山·丰润·浙能
冀南区    217-衡水·冀州·泰达,180-邯郸·永年·中电,135-邢台·威县·深能源,121-阳泉·郊区·锦江
冀西区    203-石家庄·行唐·中节能,182-石家庄·栾城·中节能,124-石家庄·无极·锦江

以上就是group_concat()的简单使用啦。

根据自己需要改动哦~

相关文章:

MySQL中concat()、concat_ws()、group_concat()函数使用

在平时工作中,经常记不清或者记混他们的用法,正好有时间就记录一下~concat()函数语法:concat(str1, str2, int1...)例如执行sql:SELECT CONCAT(id,USERNAME,USER_PHONE) FROM tb_user输出查询结果为: 1test15216756754…...

【JavaEE初阶】第四节.文件操作 和 IO (上篇)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、文件 1.1 文件的概念 1.2 文件的路径二、 Java中文件系统操作 2.1 File类的属性 2.2 File类的构造方法 2.3 File类的方法 …...

开源免费堡垒机Teleport堡垒机的安装

准备:纯净centos7系统一个作为堡垒机,若干个linux系统或windows系统服务器作为受保护的服务器 堡垒机IP:192.168.1.15 服务器IP:192.168.1.10 1、teleport安装 下载地址: https://www.tp4a.com/static/download/teleport-server-linux-x64-3.6.4-b3.tar.gz xshell上传压缩…...

图形报表ECharts

图形报表ECharts1 图形报表ECharts1.1 ECharts简介-富客户端图表库ECharts缩写来自Enterprise Charts,商业级数据图表,是百度的一个开源的使用JavaScript实现的数据可视化工具,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏…...

便捷式储能电源核心技术--单相逆变器设计

便捷式储能电源核心技术–单相逆变器设计 1.逆变器的规格参数 输入电压直流400V输出电压交流rms220V开关频率10kHz滤波电容6.23uF控制方式单极性倍频2.视频学习链接 视频学习链接 3.主电路仿真设计...

Gamma矫正

Gamma 曲线Gamma校正被使用在8位RGB图中。用来解决在有限的存储空间中保存尽可能多的人类感受敏感的色彩内容。Gamma 矫正Gamma校正的方式就是采样时,和输出到显示器给人类看时,对亮度进行的调整.如采样时 Gamma1/2.2 调亮Gamma,如显示时 Gamma2.2 调暗Gamma实际亮度…...

速懂cookie,session,token

文章目录cookiesessiontoken区别cookie 是浏览器提供的一种能力,可以在每次发起请求前,带上cookie里面的内容(一些key,value值) 分类: 会话级cookie:默认情况,就是会话级cookie&…...

javaEE初阶 — HTML 中的常见标签

文章目录注释标签标题标签:h1 h6段落标签:p换行标签:br格式化标签图片标签:img1. img 的 alt 属性2. img 的 title 属性3. width 与 heigth 属性用来描述图的尺寸超链接标签:a表格标签列表标签表单标签1. from 标签2. …...

MySQL慢查询

2 慢查询 2.1 慢查询介绍 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。具体指运行时间超过long_query_time值的SQL&…...

tensorflow【import transformers 报错】

目录 一、安装 安装好了tensorflow,但是import时候报错: import transformers 报错 一、安装 (1)创建环境: conda create -n [name] python3.3-3.7 (2)激活环境: conda activate [name] …...

JMU软件20 计算机网络复习

文章目录题型单位换算第一章协议与划分层次、网络协议的三个组成要素,分层的思想等协议网络协议的三个组成要素分层的思想⭐计算机网络体系结构OSI 的七层协议TCP/IP 的四层协议五层协议发送时延、传播时延、总时延、往返时间RTT计算第二章 物理层传输媒体导向性传输…...

Java基础之《dubbo(1)—dubbo基础入门》

一、为什么要使用dubbo 1、dubbo是什么 dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。 2、dubbo有何特点 (1)远程通讯:提供透明化的远程方法调用,提供…...

HTML注入的一种攻击思路(超链接替换为点击验证,现在常见)

目录 背景 利用方法 举一反三 场景1:截获 TOKEN 场景2:截获后台信息 总结...

Redis-6集群

文章目录前言Redis集群原理搭建Redis集群集群拓展后记前言 前两期介绍和搭建了Redis的主从复制架构和哨兵模式,虽然哨兵模式能够实现自动故障转移主备切换,一定程度上提高了系统的容错性 但这两种架构模式都不能解决单节点的并发压力和物理上线的问题&…...

Spring Cloud学习笔记:基础知识

这是本人学习的总结,主要学习资料如下 马士兵教育 目录1、Spring Cloud 简介2、Eureka3、建立Spring Cloud项目3.1、启动Server3.1.1、dependency3.1.2、配置文件3.1.3、Server端启动代码3.2、启动Client3.2.1、dependency3.2.2、配置文件3.3.3、Client端启动代码3…...

农产品销售系统/商城,可运行

文章目录项目介绍一、项目功能介绍1、用户模块主要功能包括:2、商家模块主要功能包括:3、管理员模块主要功能包括:二、部分页面展示1、用户模块部分功能页面展示2、商家模块部分功能页面展示3、管理员模块部分功能页面展示三、部分源码四、底…...

【Java开发】JUC进阶 05:函数式接口、ForkJoin

1 四大函数式接口函数式接口:只有一个抽象方法的接口,只要是函数式接口,就可以用lambda表达式简化例如Runnable:FunctionalInterface public interface Runnable {public abstract void run(); }框架底层大量应用函数式接口&#…...

Nginx支持quic协议

第一种方式:Nginx官方nginx-quic搭建 通过部署Nginx官方的QUIC分支来实现的浏览器和nginx-quic服务器粗略的HTTP3通信。 1、下载BoringSSL BoringSSL 是由谷歌开发,从 OpenSSL 中分离的一个分支。BoringSSL 是 Chrome/Chromium、Android(但它不是 NDK 的…...

笔记 - Java 内存结构与模型

-- Java里内存结构与内存模型是两种概念 一、Java内存结构: HeapMemory - 堆内存Java Stacks - 栈内存 (运行时)Method Area - 方法区Native Method Stack - 本地方法栈 真实和系统打交道的地方Jit Compiler - 将java运行指令编译成机器指令G…...

C#基础教程12 数组

文章目录 C# 数组(Array)C# 中的数组声明数组初始化数组赋值给数组访问数组元素C# 数组细节C# 数组(Array) 数组是一个存储相同类型元素的固定大小的顺序集合。数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合。 声明数组变量并不是声明 number0、number1…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...

【Oracle APEX开发小技巧12】

有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...