Mysql 合并某一列的值(将某列的值串联起来)

Mysql 合并某一列的值(将某列的值串联起来)
有时我们需要将某列的值合并起来,那么我们可以怎么来实现呢?
可以用 group_concat() 函数来实现

例子:

Mysql 合并某一列的值(将某列的值串联起来)_第1张图片
 


若想简单深入了解一下  group_concat() 函数,可继续查看

group_concat()
说明:函数返回一个字符串结果,串联起组中的非空值
语法:

group_concat([distinct] expr [,expr ...]
             [order by {unsigned_integer | col_name | expr}
                 [asc | desc] [,col_name ...]]
             [separator str_val])

返回值:返回一个字符串结果
参数说明:
distinct :可用 distinct 来消除重复值
order by :可用 order by 来对结果中的值进行排序
separator:可用 separator 来指定分割符,默认是 逗号
                     若不想有分隔符,可用 separator '' 来实现

例子:

Mysql 合并某一列的值(将某列的值串联起来)_第2张图片

补充:
若返回的结果将被截断为了,并没有返回所有的字符。
那是因为超出了 group_concat_max_len 的最大长度,默认值为1024;
我们只需更改 group_concat_max_len 的值即可 
语法如下,其中val 是一个无符号整数:

set [global | session] group_concat_max_len = val;

 

SQL 汇集:

-- 创建测试表
drop table if exists test_01;
create table test_01(id int ,name varchar(10));
 
-- 写入测试数据
insert into test_01 values(1,'MySQL');
insert into test_01 values(2,'SQL Server');
insert into test_01 values(3,'Oracle');
insert into test_01 values(4,'MongoDB');
insert into test_01 values(5,'SQLite');
insert into test_01 values(5,NUll);
insert into test_01 values(6,'Oracle');

-- 查看测试数据
select * from test_01;

-- 例子
select group_concat(name) result from test_01;

-- ;例子
select group_concat(id,'->[', name ,']') result  from test_01 union all
select group_concat(name 
					order by name desc)  from test_01 union all
select group_concat(distinct name 
					separator '、')  from test_01;

 

希望对你有帮助!!!

你可能感兴趣的:(数据库,#,MySQL,数据库,mysql)