concat()函数
该函数可以将多个字符串连成一个字符串。
使用语法
concat(str1, str2, ...)
返回结果
参数拼接成的字符串,如果有任何一个参数为null,则返回值为null
例子
1.从person表查出数据,拼成字符串
2.加上分隔符,便于查看
如果有任何一个参数为null,则返回值为null
concat_ws()函数
该函数可以在concat()基础上一次性定义分隔符。
例子
如果把分隔符设为null,数据都会变成null
group_concat()函数
在有group by的查询语句中,select指定的字段要么就包含在group by语句的后面,作为分组的依据,要么就包含在聚合函数中。
1.根据name分组,查询对应的最小的id。
如果要查name相同的人中所有id呢?
有没有更直观的方法,既让每个名字都只出现一次,又能够显示所有的名字相同的人的id呢?此时可以使用group_concat()
将group by产生的同一个分组的值连接起来,返回一个字符串结果
语法:group_concat([distinct] 要连接的字段 [order by 排序字段 asc/desc] [])
说明:通过使用distinct可以排除重复值;如果希望对结果中的值进行排序,可以使用order by子句;separator是一个字符串值,缺省为一个逗号。
1.使用group_concat()和group by显示相同名字的人的id号:
2.查询name对应的id号,从大到小,以“--”分割
3.查询以name分组的所有组id和age