MySQL实现用逗号进行拼接、以逗号进行分割

吾爱主题 阅读:160 2022-12-24 16:32:00 评论:0

MySQL用逗号进行拼接、以逗号进行分割

MySQL中,把查询的结果拼接成一个字符串。

group_concat 函数

用法:group_concat (待拼接对象)

输出:用逗号进行拼接后的字符串

例子:

?
1 2 3 4 5 6 7 8 9 select group_concat(emp_no) as employees from dept_emp;   /* 结果: employees                                                         | + -------------------------------------------------------------------+ | 10001,10002,10003,10004,10005,10006,10007,10008,10009,10010,10010 | + -------------------------------------------------------------------+ */

可以使用MySQL中的字符串拆分函数实现:

?
1 substring_index(str,delim, count )

说明:str: 被分割的字符串; delim: 分隔符; count: 分割符出现的次数

例子:

对于字符串 “209755,209756,209757” ,设置delim为 “,”,count为1,就会返回 “209755”;

其它参数不变,count为2,就会返回 “209755,209756”;其它参数不变,count为-1,就会返回 “209757”。

?
1 2 3 4 5 select colnum_name ,( select substring_index(substring_index(bill_ids, ',' ,1), ',' ,-1)) as bill_id1 ,( select substring_index(substring_index(bill_ids, ',' ,2), ',' ,-1)) as bill_id2 ,( select substring_index(substring_index(bill_ids, ',' ,3), ',' ,-1)) as bill_id3 from table_name;

若不知道要分割的字段究竟有几个值(如可能某些行就1个值,某些有6个),可以考虑根据具有最多值的数量来选择使用多少条

(select substring_index(substring_index(bill_ids,’,’,第几个值),’,’,-1))语句,但是会有问题(待解决)

例子:

原表
1
2,3,4
5,6
分割的结果
1 1 1
2 3 4
5 6 6

MySQL多行数据用逗号拼接返回一行

解决方案

先说解决办法,这里使用的是 GROUP_CONCAT 函数,先来实例:

?
1 SELECT GROUP_CONCAT( ` name ` SEPARATOR ',' ) FROM uim_user 

这样返回的多行数据会合并成一行,并且用逗号分割返回.

GROUP_CONCAT简单阐述

使用语法:

?
1 group_concat([ DISTINCT ] 要连接的字段 [ Order BY ASC / DESC 排序字段] [Separator '分隔符' ])

一般与group by 分组一起使用,如果不分组默认返回一行

而分组后会把相同分组类型的数据返回一行,并且可使用分割符号分割,去重,排序等操作

简单实例:

这里是按照部门分组,这样同一个部门的人会返回一行并且用逗号分割

?
1 SELECT group_concat( distinct ( name ) SEPARATOR ',' ) name FROM uim_user group by dept_id

ps:开发中会有很多种需要合并结果集的情况,比如要查询小明这个同学所有科目分数返回一行,这样使用来达到返回数据的要求。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/weixin_39562364/article/details/106658850

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容