我想在 laravel 中使用 orderBy,但当我在那里使用 CAST 时它不起作用
$this->adLists = ListingVisitor::with('listing')->selectRaw('CAST(sum(amount) as UNSIGNED) as total,listing_id,amount')->whereHas('listing.user',function($q){
$q->where('id',Auth::user()->id);
})->groupBy('listing_id')->orderBy('total','DESC')->paginate(10);
结果会是
136, 66, 1 ,5
实际上应该是 136, 66, 5, 1
我在 selectRaw 中使用了 CAST,但没有区别
$this->adLists = ListingVisitor::with('listing')
->selectRaw('sum(amount) as total, listing_id')
->whereHas('listing.user', function($q) {
$q->where('id', Auth::user()->id);
})
->groupBy('listing_id')
->orderBy(DB::raw('sum(amount)'), 'DESC')
->paginate(10)
我认为没有必要铸造它。当您进行求和时,它已经以数字格式返回您。相反,请尝试使用 SUM 函数进行排序。它会给你预期的输出。