按条件排序

时间:2018-11-23 09:25:06

标签: laravel

我是laravel的新手

我正忙于查询以获取组和项目(单独的模型但已链接)
我想做与不做物品相同的操作,即如果不为null,则按$sortColumn排序,否则按description

排序

我不确定如何在给定查询中实现用条件替换->orderBy('description', 'asc')的情况。

return $this->model->with( [ 'items' => function($query){
    $query->orderBy(\DB::raw("CASE WHEN ".$sortColumn." IS NOT NULL THEN ".$sortColumn."::text ELSE description END"));
}])
->where("hos_id",$hos_id)
->orderBy('description', 'asc')
->get();

我在想

->orderBy(\DB::raw("CASE WHEN ".$sortColumn." IS NOT NULL THEN ".$sortColumn."::text ELSE description END"));

代替

->orderBy('description', 'asc')

1 个答案:

答案 0 :(得分:1)

我猜很简单

...
->orderBy(DB::raw('CASE WHEN ...'))
...
相关问题