您现在的位置是:网站首页> php专栏 常见问题
tp5分组查询取最新的一条记录
亦然2019-10-22 16:30:16【常见问题】人已围观
简介php根据字段对数据分组,只取分组的第一条数据。
一:前言
一个订单状态表里有多条重复订单的数据,需要实现取每个订单最新状态的那一条数据。解决方案是使用buildsql构建子查询并排序,再通过group by对子查询结果集进行分组。
最后生成的sql是:
SELECT * FROM ( SELECT * FROM `tp_order_sale` WHERE `order_id` = 2315 ORDER BY id desc )a GROUP BY order_id
二:代码
$lock = Model('order_sale'); $order_id = "2315"; $subQuery = $lock->table('tp_order_sale') ->where('order_id',$order_id) ->order('id desc') ->buildSql(); $res = $lock->table($subQuery.'a')->group('order_id')->select(); //对象转数组 $res = collection($res)->toArray(); dump($res);这里以某一个订单为例测试。效果:
很赞哦!()
上一篇:php实现根据用户权重值分配订单