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
相关推荐
En^_^Joy1 天前
Django开发:模板系统入门指南
数据库·django·sqlite
无关86881 天前
Redis Bitmaps 用户签到系统设计方案
数据库·redis·缓存
江华森1 天前
FastAPI 极速开发指南 — 从零到生产级 API 实战
数据库·fastapi
左直拳1 天前
mysql分区表自动归档
mysql·分区表·分区表归档
老纪1 天前
Redis分布式锁进第九零篇
数据库·redis·分布式
haven-8521 天前
MySQL事务ACID、隔离级别、MVCC、幻读解决
数据库·mysql
小高学习java1 天前
事务的边界问题,如何判断数据回滚时机。
java·数据库·后端
迷枫7121 天前
【无标题】
数据库
TDengine (老段)1 天前
TDengine 扫描算子 — TableScan、TagScan 与下推优化
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
放下华子我只抽RuiKe51 天前
FastAPI 全栈后端(三):数据库与 ORM
前端·数据库·react.js·oracle·性能优化·前端框架·fastapi