MySQL里的三个concat函数

MySQL 里严格来说与"字符串拼接(concat)"相关的常用函数主要有 3 个:

一. CONCAT()

  • 将多个字符串直接连接起来。
  • 只要有任意参数为 NULL,结果就是 NULL。
sql 复制代码
SELECT CONCAT('Hello', ' ', 'World');
-- Hello World

SELECT CONCAT('A', NULL, 'B');
-- NULL

二. CONCAT_WS()(WS = With Separator)

  • 第一个参数是分隔符。
  • 自动忽略后面参数中的 NULL 值。 分隔符不会出现在被忽略的位置。
  • 当所有值都为 NULL 时(不包括第一个参数分隔符),结果为空字符串。
  • 当第一个参数(分隔符)为 NULL 时,结果为 NULL 。
sql 复制代码
SELECT CONCAT_WS('-', '2025', '06', '12');
-- 2025-06-12

SELECT CONCAT_WS('-', '2025', NULL, '12');
-- 2025-12

三. GROUP_CONCAT()

  • 聚合函数,将多行数据拼接成一个字符串。 常用于分组统计结果展示。
  • 自动忽略后面参数中的 NULL 值。 分隔符不会出现在被忽略的位置。
  • 当所有值都为 NULL 时,结果为 NULL 。
  • 可以指定分隔符,默认分隔符为 ",",分隔符不能为 NULL 。

例如表:

dept name
IT Tom
IT Jack
IT Lucy
sql 复制代码
SELECT GROUP_CONCAT(name)
FROM employee
WHERE dept = 'IT';

结果:

sql 复制代码
Tom,Jack,Lucy

也可以指定分隔符:

sql 复制代码
SELECT GROUP_CONCAT(name SEPARATOR '|')
FROM employee;

结果:

sql 复制代码
Tom|Jack|Lucy
相关推荐
国强_dev1 小时前
技术探讨:使用 stunnel 加密转发数据库连接时,如何获取客户端真实 IP?
数据库·网络协议·tcp/ip
@insist1231 小时前
系统规划与管理师-信息系统规划核心工作要点解析
数据库·软考·系统规划与管理师·软件水平考试·系统规划与管理工程师
超级数据查看器2 小时前
超级数据查看器 v10.0 发布
java·大数据·数据库·sqlite·安卓
数安3000天2 小时前
增量数据如何自动分类分级,避免目录“过期“?
大数据·数据库
南墙上的石头3 小时前
麒麟 V10 重装人大金仓 V8R6 踩坑实录(含 MySQL 兼容模式)
数据库·mysql
画中有画4 小时前
论向量数据库在项目中的应用
数据库
spider_xcxc4 小时前
Redis 数据库高质量实践指南(一)
运维·数据库·redis·oracle·云计算
l1t5 小时前
在linux和windows中解决duckdb 1.6dev版本输出执行计划报错问题
linux·运维·数据库·windows·duckdb
执子手 吹散苍茫茫烟波5 小时前
RC 隔离级别下 MySQL InnoDB 死锁典型案例
数据库·mysql
落叶-IT6 小时前
Java异常处理深度实战教程:异常传播的失败场景分析
数据库·oracle