MySQL 字符串拼接的几种方式
1. 使用 CONCAT 函数
语法
示例
2. 使用 CONCAT_WS 函数
语法
示例
3. 使用字符串连接运算符(||)
启用 PIPES_AS_CONCAT 选项
示例
4. 在 GROUP_CONCAT 函数中进行拼接
语法
示例
分类:
MySQL
聚焦技术和人文,分享干货,共同成长。
CONCAT
函数是 MySQL 中最常用的字符串拼接函数,它可以接受多个参数,并将这些参数按顺序拼接成一个字符串。如果其中一个参数为 NULL
,则整个结果为 NULL
。CONCAT(str1, str2, ..., strn)
-- 拼接多个字符串
SELECT CONCAT('Hello', ' ', 'World');
-- 输出: Hello World
-- 拼接表中的字段
SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM users;
CONCAT_WS
函数是 CONCAT
函数的扩展,WS
代表 “With Separator”,即带有分隔符。它的第一个参数是分隔符,后面可以跟多个要拼接的字符串。如果某个参数为 NULL
,会忽略该 NULL
值,不会影响最终结果。CONCAT_WS(separator, str1, str2, ..., strn)
-- 使用逗号作为分隔符拼接字符串
SELECT CONCAT_WS(', ', 'Apple', 'Banana', 'Cherry');
-- 输出: Apple, Banana, Cherry
-- 拼接表中的字段,使用空格作为分隔符
SELECT CONCAT_WS(' ', first_name, last_name) AS full_name FROM users;
||
运算符进行字符串拼接,但需要注意的是,默认情况下,||
是逻辑或运算符。要使其作为字符串连接运算符使用,需要将 sql_mode
中的 PIPES_AS_CONCAT
选项启用。-- 临时启用
SET sql_mode=(SELECT REPLACE(@@sql_mode,'PIPES_AS_CONCAT',''));
SET sql_mode=CONCAT(@@sql_mode, ',PIPES_AS_CONCAT');
-- 永久启用,需要修改配置文件 my.cnf 或 my.ini
-- 在 [mysqld] 部分添加或修改:
-- sql_mode = '...PIPES_AS_CONCAT...'
SELECT 'Hello' || ' ' || 'World';
-- 输出: Hello World
GROUP_CONCAT
函数通常用于在分组查询中,将分组内的多个字符串拼接成一个字符串。可以指定分隔符、排序方式等。GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | expr}
[ASC | DESC] [,col_name ...]]
[SEPARATOR str_val])
-- 将 users 表中同一部门的员工姓名拼接成一个字符串,用逗号分隔
SELECT department, GROUP_CONCAT(first_name SEPARATOR ', ') AS employees
FROM users
GROUP BY department;
CONCAT
函数通常就足够了;如果需要指定分隔符,CONCAT_WS
函数更合适;在分组查询中拼接字符串,则可以使用 GROUP_CONCAT
函数。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
2024-02-19 一条SQL更新了整个表,如何回退
2021-02-19 Oracle安装与数据库创建