目录
一、准备数据
二、concat函数
1.语法格式
2.语法说明
3.场景使用
4.限制条件
三、concat_ws函数
1.语法格式
2.语法说明
3.场景使用
4.限制条件
四、group_conat函数
1.语法格式
2.语法说明
3.场景使用
4.限制条件
#创建用户表
CREATE TABLE `user` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id',
`name` varchar(60) NOT NULL COMMENT '姓名',
`age` int(11) NOT NULL COMMENT '年龄',
`sex` int(1) NOT NULL COMMENT '性别(1是男 0是女 )',
`hobby` varchar(255) DEFAULT NULL COMMENT '爱好',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
#插入数据
INSERT INTO `user` (`id`, `name`, `age`, `sex`, `hobby`) VALUES (1, '小明', 20, 1, '唱歌');
INSERT INTO `user` (`id`, `name`, `age`, `sex`, `hobby`) VALUES (2, '小红', 19, 0, '跳舞');
INSERT INTO `user` (`id`, `name`, `age`, `sex`, `hobby`) VALUES (3, '小蓝', 17, 1, NULL);
concat(str1, str2,...)
返回结果为连接内多个参数产生的字符串。如果有任何一个参数为NULL ,则返回值为 NULL
select concat(name,'爱好',hobby) from user;
在5.7版本之前,单个字符串长度限制为65535个字节,在5.7之后,限制为4294967295个字节
concat_ws(separator, str1, str2, ...)
第一个参数指定分隔符。需要注意的是分隔符不能为NULL,如果为NULL,则返回结果为NULL
select concat_ws(",",name,age,hobby) from user;
正常情况下长度是1024字节,可设置最大长度为102400字节
SET GLOBAL group_concat_max_len = 102400;
SET SESSION group_concat_max_len = 102400;
group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] )
使用distinct可以去重;order by子句是排序功能;separator是一个字符串的分隔符,缺省时默认是逗号
①.不指定分隔符
select group_concat(name) from user;
②.指定分隔符
select group_concat(name separator '#') from user;
正常情况下长度是1024字节,可设置最大长度为102400字节
SET GLOBAL group_concat_max_len = 102400;
SET SESSION group_concat_max_len = 102400;