我有这样的查询:
$foos= Foo::orderBy('order_number', 'asc')->limit(10)->orderBy('updated_at', 'desc')->get();
由asc订购“order_number”。再次下单后。
如果查询中有相同的订单号值。例如:
我想要的是:
1-2-3-2-3-2-1-1-1-2
有四个“数字1”,四个“数字2”,两个“数字3”
是否有机会按created_at
,desc
订购每个号码?
结果必须是:
1-1-1-1-2-2-2-2-3-3
但是1s按created_at
排序,2和3按created_at
排序。
我有一个解决方案,但它并不简洁:它使用3个查询。
Edit1:
在我的数据库中
id = 1 / order = 1 / name = john / created_at = 2013
id = 2 / order = 2 / name = jack / created_at = 2016
id = 3 / order = 1 / name = jennifer / created_at = 2015
id = 4 / order = 2 / name = janice / created_at = 2014
查询结果必须: 的约翰 詹妮弗 贾尼斯 千斤顶
JOHN 的订单比jack和janice小,比Jennifer早。 (第一名)
JENNIFER 的订单小于jack和janice,但不早于JOHN (第二名)
JANICE 的订单和 JACK 的订单并不比其他订单小,但janice比jack更早创建了create_at。所以jennifer 第三名。杰克第4次。
当然可能有很多订单。
答案 0 :(得分:0)
按id
排序,然后按created_at
OrderModel::orderBy('id')->latest()->get();