MySQL-字符串拼接

字符串拼接在查询语句中,很常用,接下来整理三种字符串拼接方式

  1. CONCAT()
  2. CONCAT_WS()
  3. GROUP_CONCAT()
s_id s_name s_sex
01 张三
02 李四 null

CONCAT()

CONCAT(string1,string2)

最常用的字符串拼接方法,但遇到拼接中的字符串出现 null 的情况会返回 null。

1
2
3
4
SELECT CONCAT(s_name,s_sex) FROM student
# 返回
# 张三男
# null

CONCAT_WS()

CONCAT_WS(separator,str1,str2,…)

concat()的特殊形式,第一个参数是其它参数的分隔符,如果某个字符串为null,会忽略null,并返回其他字符串的值。

1
2
3
4
SELECT CONCAT_WS('--',s_name,s_sex) FROM student
# 返回
# 张三--男
# 李四

GROUP_CONCAT()

group_concat( [DISTINCT] 连接的字段 [Order BY 排序字段 ASC/DESC] [Separator ‘分隔符’] )

连接字段,多个值显示为一行,可以是多个字段,也可以对连接字段进行排序。

1
2
3
4
5
6
7
SELECT GROUP_CONCAT(s_id) FROM student
# 返回
# 01,02

SELECT GROUP_CONCAT(s_id,s_name order by s_id desc separator '-') FROM student
# 返回
# 02-李四,01-张三

参考文章

MySQL教程之concat以及group_concat的用法