MySQL的字符串拼接有三个函数
- CONCAT(str1,str2,…)
- CONCAT_WS(separator,str1,str2,…)
- GROUP_CONCAT(expr)
这三个函数都各有作用,现在测试看看是什么样子的效果
准备数据表
CREATE TABLE `user_info` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`age` int(3) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
准备数据
id | name | age |
---|---|---|
1 | Ana | 24 |
2 | Ame | 24 |
3 | Clid | 27 |
4 | Dave | 27 |
5 | Eva | 27 |
测试
CONCAT、CONCAT_WS其实差不多,就是CONCAT_WS能自己设置分隔符,而且这两个字段是拼接同一行的数据。
使用CONCAT
select CONCAT(name,age) as result from user_info
结果
result
Ana27
Ame24
Clid24
Dave24
Eva24
使用CONCAT_WS
select CONCAT_WS(':',name,age) as result from user_info
结果
result
Ana:27
Ame:24
Clid:24
Dave:24
Eva:24
使用GROUP_CONCAT,这个能将多行聚合成一行,也比较常用的
select GROUP_CONCAT(name) as result from user_info
结果
result
Ana,Ame,Clid,Dave,Eva
还可以分组聚合
select GROUP_CONCAT(name) as result,age from user_info GROUP BY age
结果
result age
Ame,Clid,Dave,Eva 24
Ana 27
这三个函数都挺常用的,但是我只是简单演示该功能,深入可以查查其他资料。