MySQL函数之concat()

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

posted @ 2021-10-19 20:32  Leejk  阅读(2111)  评论(0编辑  收藏  举报