Laravel雄辩地命令两次

时间:2018-04-20 13:19:02

标签: laravel eloquent

我有这样的查询:

$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_atdesc订购每个号码?

结果必须是:

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次

当然可能有很多订单。

1 个答案:

答案 0 :(得分:0)

id排序,然后按created_at

排序
OrderModel::orderBy('id')->latest()->get();