MySQL之CONCAT、CONCAT_WS和GROUP_CONCAT函数用法

目录

一、准备数据

二、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函数

1.语法格式

concat(str1, str2,...)

2.语法说明

返回结果为连接内多个参数产生的字符串。如果有任何一个参数为NULL ,则返回值为 NULL

3.场景使用

select concat(name,'爱好',hobby) from user;

MySQL之CONCAT、CONCAT_WS和GROUP_CONCAT函数用法_第1张图片

4.限制条件

在5.7版本之前,单个字符串长度限制为65535个字节,在5.7之后,限制为4294967295个字节

三、concat_ws函数

1.语法格式

concat_ws(separator, str1, str2, ...)

2.语法说明

第一个参数指定分隔符。需要注意的是分隔符不能为NULL,如果为NULL,则返回结果为NULL

3.场景使用

select concat_ws(",",name,age,hobby) from user;

MySQL之CONCAT、CONCAT_WS和GROUP_CONCAT函数用法_第2张图片

4.限制条件

正常情况下长度是1024字节,可设置最大长度为102400字节

SET GLOBAL group_concat_max_len = 102400;
SET SESSION group_concat_max_len = 102400;

四、group_conat函数

1.语法格式

group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] )

2.语法说明

使用distinct可以去重;order by子句是排序功能;separator是一个字符串的分隔符,缺省时默认是逗号

3.场景使用

①.不指定分隔符

select group_concat(name) from user;

MySQL之CONCAT、CONCAT_WS和GROUP_CONCAT函数用法_第3张图片

②.指定分隔符

select group_concat(name separator '#') from user;

MySQL之CONCAT、CONCAT_WS和GROUP_CONCAT函数用法_第4张图片

4.限制条件

正常情况下长度是1024字节,可设置最大长度为102400字节

SET GLOBAL group_concat_max_len = 102400;
SET SESSION group_concat_max_len = 102400;

你可能感兴趣的:(技术栈,mysql,数据库,java)