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

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

例子:


 


若想简单深入了解一下  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 '' 来实现

例子:

补充:
若返回的结果将被截断为了,并没有返回所有的字符。
那是因为超出了 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;

 

希望对你有帮助!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值