选择laravel查询以根据底部剩余顶部列的条件获取特定行

时间:2017-11-20 15:02:47

标签: php sql laravel-5

我是Laravel的新手。我对Laravel选择查询有疑问。我在这里解释我的要求。

我想选择学校所有学生的总分。但我必须按特定顺序获得学生的分数。在其他批次的标记之上和之后的标记为5A批次。所有批次的标记以随机方式存储在表“total_marks”中。此表的列为“student_name”,“batch”,“total_marks”

请帮助我获取针对这种情况的选择查询。

1 个答案:

答案 0 :(得分:0)

普通的mysql查询看起来像

select *
from table
order by case 
          when batch = '5A'
          then 0
          else 1 
          end, total_marks desc

或者

select *
from table
order by batch = '5A' desc, total_marks desc

在laravel我猜它可以写成

DB::table('yourtable')
    ->orderByRaw("case when batch = '5A' then 0 else 1 end, total_marks desc")
    ->get();

DB::table('yourtable')
    ->orderByRaw("batch = '5A' desc, total_marks desc")
    ->get()