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
相关推荐
Poo_Chai9 分钟前
QT emit信号后完整处理流程,包括槽函数响应流程
java·开发语言·数据库
这个DBA有点耶1 小时前
从DBA到数据架构师(五):数据架构演进中的技术债务管理
数据库·程序人生·云原生·架构·dba·数据库管理员
Bruce_Liuxiaowei2 小时前
基于微步在线威胁情报的公网 IP 攻击迹象监测:threatbook_query 脚本全解析与 BruceSec 平台整合实践
数据库·tcp/ip·安全·网络安全·智能体
码农颜2 小时前
5.6.2 ⾏级锁死锁
数据库·sql·oracle
ChaHae-In2 小时前
MyBatis动态SQL与MyBatis-Plus高效开发指南
数据库·oracle·mybatis
冰暮流星2 小时前
mysql之分组查询
数据库·mysql
倒流时光三十年3 小时前
PostgreSQL Semi-Join(半连接)通俗讲解
数据库·postgresql
NiceCloud喜云4 小时前
腾讯云国际版云数据库选型:MySQL、Redis 怎么按业务架构来判断
数据库·mysql·腾讯云
ew452184 小时前
MySQL JOIN 关联语法、差异、标准用法、经典坑点汇总
数据库·mysql
Rain的Java大神之路5 小时前
线上接口负载满了如何解决
java·数据库·redis·后端·缓存·面试·架构