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

【MySQL】CONCAT、CONCAT_WS、GROUP_CONCAT 函数用法

CONCAT

含义

将多个字符串连接成一个字符串

语法

CONCAT(str1, str2,...)

数据模拟(user_score)

idnamescore
1小明65
2小红70
3小兰90
4(Null)100
5小李(Null)

SQL 代码

SELECT CONCAT(name, ',', score) AS score
FROM user_score

结果

score
小明,65
小红,70
小兰,90
(Null)
(Null)

结论

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

CONCAT_WS

含义

CONCAT() 一样,将多个字符串连接成一个字符串,但是可以一次性指定分隔符~(CONCAT_WS 就是 concat with separator

语法

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

注:separator 是分隔符

数据模拟(user_score)

idnamescore
1小明65
2小红70
3小兰90
4(Null)100
5小李(Null)

SQL 代码

SELECT CONCAT_WS(null, name, score) as score
FROM user_score

结果

score
(Null)
(Null)
(Null)
(Null)
(Null)
SELECT CONCAT_WS(',', name, score) as score
FROM user_score

结果

score
小明,65
小红,70
小兰,90
100
小李

结论

1、分隔符为 null 时,结果全部也变成 null
2、和 CONCAT 的区别在于,CONCAT_WS 取的字段为 null 不会导致结果直接为 null,而 CONCAT 是直接结果为 null

GROUP_CONCAT

含义

根据某一字段分组,然后指定另一字段进行字符串拼接操作

语法

GROUP_CONCAT([DISTINCT] 要连接的字段 [ORDER BY 排序字段 ASC/DESC] [Separator '分隔符'])

数据模拟(user_score)

idscore
160
160
170
265
385
380
3(Null)

SQL 代码

1、不写分隔符默认英文逗号

SELECT id, GROUP_CONCAT(score) AS score
FROM user_score GROUP BY id
idscore
160,60,70
265
380,85
SELECT id, GROUP_CONCAT(score Separator ‘-) AS score
FROM user_score GROUP BY id
idscore
160-60-70
265
380-85

2、使用 DISTINCT

SELECT id, GROUP_CONCAT(DISTINCT score) AS score
FROM user_score GROUP BY id
idscore
160,70
265
380,85

3、排序

SELECT id, GROUP_CONCAT(DISTINCT score ORDER BY score DESC) AS score
FROM user_score GROUP BY id
idscore
170,60
265
385,80

参考

MySQL group_concat() 函数
MySQL 教程之 concat 以及 group_concat 的用法
SQL 函数 Group_concat 用法


http://www.kler.cn/a/134840.html

相关文章:

  • 浅谈:基于三维场景的视频融合方法
  • 【大数据学习 | HBASE高级】rowkey的设计,hbase的预分区和压缩
  • 【安全通信】告别信息泄露:搭建你的开源视频聊天系统briefing
  • JSON-RPC-CXX深度解析:C++中的远程调用利器
  • 矢量拟合(1)Sanathanan–Koerner算法
  • 天才的懈怠 : 平衡二叉树
  • 【产品应用】一体化伺服电机在系留无人机中的应用
  • mfc140u.dll丢失的解决方法,以及mfc140u.dll解决方法的优缺点
  • debian/ubuntu/linux如何快速安装vscode
  • MySQL 8.0:性能优化与新功能
  • 解锁编程潜能:探索亚马逊CodeWhisperer,打造编程世界的声音引导者
  • Pyside6/PyQt6如何添加右键菜单,源码示例
  • mac环境使用sudo进行node包管理
  • 《QT从基础到进阶·三十》QVariant的基础用法
  • 什么是统一数据存储?
  • 【WSL/WSL2-Ubuntu】突破界限:不使用服务器在一台Windows搭建Nginx+FastDFS
  • 【计算机网络】P2 性能指标
  • OpenAI 的 API 简介
  • 淘宝商品详情数据接口,淘宝商品优惠券数据接口,淘宝API接口
  • 小程序富文本图片大小问题
  • 大数据安全 测试
  • Google的检索工具栏如何使用?
  • Vue 实现 Hover 功能( mouseover 与 mouseenter 的区别)
  • NodeMCU ESP8266构建Web Server网页端控制设备
  • docker打包chatpdf(自写)
  • 使用ChatGPT进行数据分析案例——贷款数据分析