当前位置: 代码网 > it编程>数据库>Mysql > MySQL将多条数据合并成一条的完整代码示例

MySQL将多条数据合并成一条的完整代码示例

2024年05月26日 Mysql 我要评论
数据库中存的是多条数据,展示的时候需要合并成一条数据表存储形式如下图以type分组,type相同的算一条,且保留image和link的所有数据,用groupby只保留一条数据解决方案:用group_c

数据库中存的是多条数据,展示的时候需要合并成一条

数据表存储形式如下图

以type分组,type相同的算一条,且保留image和link的所有数据,用groupby只保留一条数据

解决方案:用group_concat

完整语法如下

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

select * from testgroup

表结构与数据如上

现在的需求就是每个id为一行 在前台每行显示该id所有分数

group_concat 上场!!!

select id,group_concat(score) from testgroup group by id

可以看到 根据id 分成了三行 并且分数默认用 逗号 分割 但是有每个id有重复数据 接下来去重

select id,group_concat(distinct score) from testgroup group by id

排序

select id,group_concat(score order by score desc) from testgroup group by id

最后可以设置分隔符

select id,group_concat(score separator ';') from testgroup group by id

二、多字段如何处理

select id,name,group_concat(concat_ws(',',type,typename) separator ',') typelinks from demo group by id,name;

三、laravel group_concat使用方法

db::raw('group_concat(pp.sku separator ",") sku')

具体代码如下

$list = $this->servicemodel->query()->where($where)
            ->groupby('type')
            ->orderby('update_time','desc')
            ->paginate($this->servicemodel->pagesize, [
                'id',db::raw('group_concat(concat_ws(",",image,link) separator ";") content'),
                'type','modified_user_id','status','create_time','update_time'
            ], "page", $page);
 
$total = $list->total();
$res = $list->items();

每条数据以";"分割,每个字段以“,”分割

一个字段可能对应多条数据,用mysql实现将多行数据合并成一行数据

 sql

select a.ep_classes 类型, group_concat(a.ep_name separator '  : ') 姓名2 from table_a a3 group by a.ep_classes

需注意:

1.group_concat()中的值为你要合并的数据的字段名;

 separator 函数是用来分隔这些要合并的数据的;

 ' '中是你要用哪个符号来分隔;

2.必须要用group by 语句来进行分组管理,不然所有的数据都会被合并成一条记录

总结

到此这篇关于mysql将多条数据合并成一条的文章就介绍到这了,更多相关mysql多条数据合并成一条内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com