排名位置按两列排序

时间:2017-10-23 17:48:07

标签: laravel

我的排名位置得分有问题!实际上我想订购“nb_point_classement”女巫是“Pts专栏”,而且“nb_difference”女巫的命令是“DIFF clolumn”。但是当它们合并时,其中一个的两个顺序不起作用。我解释你:) ..

这是我得到的排名:

enter image description here

这里是我用两个组合的顺序得到的等级

我想通过最好的“Pts”列和最好的Diff列来订购

enter image description here

 $classements = Classement::where(['compet_id' => $competition->id])
            ->orderBy('nb_point_classement' , 'DESC')
            ->orderBy('nb_difference' , 'DESC')
            ->take(10)
            ->get();

希望有人能帮助我:D提前多多感谢

1 个答案:

答案 0 :(得分:0)

按多个订单工作的订单方式是第一个订单优先。第二个订单的唯一实例是如果第一个订单与第一个订单相关联。例如,如果您有两个EquipePts为5,则会查找哪个nb_difference更高;否则它将始终按Pts排序。

向您展示您希望结果如何显示会非常有帮助,但听起来这些是两个单独的查询。

你真的需要两个:

$classementsByPts = Classement::where(['compet_id' => $competition->id])
            ->orderBy('nb_point_classement' , 'DESC')
            ->orderBy('nb_difference' , 'DESC')
            ->take(10)
            ->get();

$classementsByDiff = Classement::where(['compet_id' => $competition->id])
            ->orderBy('nb_difference' , 'DESC')
            ->orderBy('nb_point_classement' , 'DESC')
            ->take(10)
            ->get();

我不确定您是如何呈现数据的,无论是api调用还是视图,但您应该将这两个集合传递到视图中。