MySQL字符串拼接方法全解析
目录
常用字符串处理函数
方法一: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字段需为数值类型