MySQL字符串拼接方法全解析

发布于:2025-05-22 ⋅ 阅读:(18) ⋅ 点赞:(0)

目录

常用字符串处理函数

方法一:CONCAT基础拼接

方法二:CONCAT_WS带分隔符拼接

方法三:GROUP_CONCAT分组拼接

方法四:算术运算符拼接(仅限数字)


常用字符串处理函数

方法一:CONCAT基础拼接

语法格式:CONCAT(string1, string2,...) 特点:

  • 无缝拼接所有参数
  • 任意参数为NULL时返回NULL
  • 支持2个及以上参数拼接

应用示例:

-- 含NULL值返回NULL
SELECT CONCAT("name=","lich",NULL) AS test;

-- 正常拼接结果
SELECT CONCAT("name=","lich") AS test;  -- 输出:name=lich

方法二:CONCAT_WS带分隔符拼接

语法格式:CONCAT_WS(separator, string1, string2,...) 特点:

  • 首个参数为分隔符
  • 自动跳过NULL值参数
  • 分隔符为NULL时返回NULL

应用示例:

-- 使用#号连接并跳过NULL
SELECT CONCAT_WS('#','name=','lich',null) AS test;  -- 输出:name=#lich

-- 分隔符为NULL时返回NULL
SELECT CONCAT_WS(NULL,'name=','lich',null) AS test;

-- 使用字符串作为分隔符
SELECT CONCAT_WS("hello,",'name=','lich',null) AS test;  -- 输出:name=hello,lich

方法三:GROUP_CONCAT分组拼接

语法格式: GROUP_CONCAT([DISTINCT] 字段 [ORDER BY 排序] [SEPARATOR '分隔符'])

特点:

  • 配合GROUP BY使用
  • 支持去重、排序、自定义分隔符
  • 默认逗号分隔

应用示例:

-- 基础分组拼接
SELECT id,GROUP_CONCAT(type) FROM log_sys_interview GROUP BY type;

-- 自定义分隔符
SELECT id,GROUP_CONCAT(type SEPARATOR '#') FROM log_sys_interview GROUP BY type;

-- 排序后拼接
SELECT id,GROUP_CONCAT(type ORDER BY type DESC) FROM log_sys_interview GROUP BY ip;

-- 去重拼接
SELECT id,GROUP_CONCAT(DISTINCT type ORDER BY type DESC) FROM log_sys_interview GROUP BY ip;

方法四:算术运算符拼接(仅限数字)

注意事项:

  • +号运算符仅适用于数值类型
  • 字符串使用+号会尝试转换为数值
  • 非数值字符串会返回0

应用示例:

-- 原始数据查询
SELECT id,type FROM log_sys_interview;

-- 数值字段运算
SELECT id,type+99 FROM log_sys_interview;  -- type字段需为数值类型


网站公告

今日签到

点亮在社区的每一天
去签到