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
相关推荐
众链网络7 分钟前
Agent 重试的工程解法:幂等、断点续跑与熔断怎么落地
java·前端·数据库·人工智能
oradh16 分钟前
Oracle 索引维护操作总结
数据库·oracle
for_ever_love__17 分钟前
MySQL Online DDL 完全指南:INSTANT/INPLACE/COPY 三种算法、MDL 锁事故与 gh-ost 实战
数据库·mysql·ddl·online·gh-ost·锁表·加字段
for_ever_love__28 分钟前
MySQL 子查询、派生表与 CTE 优化:半连接、物化和递归实战
数据库·mysql·优化·as·子查询·with·cte
DBA_G44 分钟前
GBase 8c分布式数据库客户端工具 gsql
数据库·分布式
用户5611610232731 小时前
量化笔记程序代码分析,逐笔数据、五档快照和分钟行情代码分析
数据库
房开民1 小时前
通俗总结 Octree(八叉树)
java·服务器·数据库
星云低代码开发平台1 小时前
AI 连接器运行健康度:指标、异常恢复和联调清单
大数据·运维·网络·数据库·人工智能·mcp
鱼宵2 小时前
LangChain4j 生产化改造:记忆落 Redis、向量落 ES,重启再也不丢
数据库·redis·elasticsearch·langchain4j
星云API技术笔记2 小时前
企业微信外部群机器人实战:多人同时咨询时,如何准确匹配消息与回复对象
数据库