查询生成器:orderBy在group by之后不工作

时间:2017-10-08 04:30:11

标签: mysql laravel laravel-5 laravel-query-builder

我有一个主要查询,它将以下列方式运行。我必须检查一个条件,如果条件满足,它将添加一个包含现有查询的语句。但它不能以正确的方式工作意味着我无法使用现有的orderby函数运行?为什么要或如何解决这个问题?

$query = DB::table('users')
               ->join('products','products.auth_id','users.id')
               ->Join('reviews','products.id','reviews.product_id')
               ->select('products.*','users.avatar',DB::raw('(sum(rating)/count(user_id)) as rating'))             
               ->where('products.status','=','1')           
               ->groupBy('products.id')   
               ->latest();


if($request->get('dropdown')!='0' && $request->get('dropdown')=='desc')
{
   $query->orderBy('products.regular_price', 'desc') ;
}

$products = $query->get();

1 个答案:

答案 0 :(得分:0)

试试这个

if($request->get('dropdown')!='0' && $request->get('dropdown')=='desc')
{
   $query = $query->orderBy('products.regular_price', 'desc') ;
}

注意:您在查询中添加了latest()函数。此功能在您的查询中添加了以下内容

ORDER BY created_at DESC

latest()的默认参数为created_at