功能:将多个字符串连接成一个字符串。
返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null。
返回结果为连接参数产生的字符串并且有分隔符,如果有任何一个参数为null,则返回值为null。
功能:和concat()一样,将多个字符串连接成一个字符串,但是可以一次性指定分隔符(concat_ws就是concat with separator)
语法:concat_ws(separator, str1, str2, …)
说明:第一个参数指定分隔符。需要注意的是分隔符不能为null,如果为null,则返回结果为null。
功能:将group by产生的同一个分组中的值连接起来,返回一个字符串结果。
语法:group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator ‘分隔符’] )
说明:通过使用distinct可以排除重复值;如果希望对结果中的值进行排序,可以使用order by子句;separator是一个字符串值,缺省为一个逗号。
create table t_orders (
id int primary key auto_increment,
userId int,
orderId varchar(20)
);
insert into t_orders(userId, orderId) values(1, '100');
insert into t_orders(userId, orderId) values(1, '101');
insert into t_orders(userId, orderId) values(1, '102');
insert into t_orders(userId, orderId) values(2, '200');
insert into t_orders(userId, orderId) values(2, '201');
insert into t_orders(userId, orderId) values(3, '300');
普通查询

以 userId 分组,把 orderId 字段的值打印在一行,逗号分隔

以 userId 分组,把 orderId 字段的值打印在一行,分号分隔

以 userId 分组,把 orderId 字段的值打印在一行,降序排列

小结
concat和concat_ws都是按不同字段拼接起来 ,例如将A和B字段拼接

group_concat是按group by的字段,进行同一个字段的拼接,这里是根据userId进行的分组
