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
相关推荐
其实防守也摸鱼8 分钟前
前端应用的离线暂停更新策略:构建稳定可靠的渐进式部署方案
服务器·前端·数据库·学习·ai·命令行·linux系统
Leighteen25 分钟前
ORDER BY + LIMIT 的坑:为什么加了 `LIMIT` 结果顺序还乱
数据库
一个天蝎座 白勺 程序猿28 分钟前
复盘之我在金仓生产环境踩过的SQL暗坑,和攒了六年的编码规矩
数据库·sql·kingbasees
Mico181 小时前
MySQL 8.0.35 GTID + 延迟复制 + 过滤复制搭建
mysql·dba
Dylan的码园1 小时前
从Excel到数据库:数据分析全流程与Kettle ETL实战指南
数据库·数据分析·excel
l1t1 小时前
DeepSeek总结的DuckLake 架构深度剖析-1
数据库·架构
花生了什么事o1 小时前
分布式 ID 生成方案:从数据库自增到雪花算法
数据库·分布式·算法
纪伊路上盛名在1 小时前
NVML ERROR_ RM has detected an NVML_RM version mismatch
linux·数据库·gpu·驱动
nVisual1 小时前
01-环境监控集成方案
运维·服务器·开发语言·网络·数据库·数据中心布线·综合布线管理软件