我想从一列中获得不同的值,并从mysql数据库中的另一列中获得orderby。
mysql表有以下数据

_________________________
|id |publisher_id |view |
|1  |1            |6    |
|2  |4            |4    |
|3  |1            |3    |
|4  |3            |2    |
|5  |4            |3    |
|6  |2            |1    |
|7  |3            |7    |
|8  |5            |9    |
-------------------------


我想要输出如下

_________________________
|id |publisher_id |view |
|8  |5            |9    |
|7  |2            |7    |
|1  |1            |6    |
|2  |4            |4    |
-------------------------


Laravel查询

Feed::query()->select('publisher_id', 'view')->distinct()->orderBy('view', 'DESC')->limit(4)->get();

最佳答案

根据eckes的建议

$feeds = \App\Models\Feed::select('publisher_id', \Illuminate\Support\Facades\DB::raw('MAX(view) as view'))
        ->orderBy('view', 'DESC')
        ->groupBy('publisher_id')
        ->get();


您不能在此处使用DISTINCT,因为DISTINCT应用于整行。

关于php - 我想从一列中获得不同的值,并从mysql数据库中的另一列中订购,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47088807/

10-08 21:48