Laravel口才得到最常用的值在数据库中列

问题描述:

从表animals我在animal_name列下面的值Laravel口才得到最常用的值在数据库中列

cat dog cat 我想拉从这个词的猫,因为它是目前最流行/常用字在那一栏。我如何使用laravel雄辩做到这一点?

+0

什么ü由拉字是什么意思? ,你的意思是计算最常见的价值? – wahdan

雄辩:

App\Animal::select('name') 
    ->groupBy('name') 
    ->orderByRaw('COUNT(*) DESC') 
    ->limit(1) 
    ->get(); 

输出:

 
=> Illuminate\Database\Eloquent\Collection {#711 
    all: [ 
     App\Animal {#725 
     name: "cat", 
     }, 
    ], 
    } 

与查询生成器同样的事情:

DB::table('animals') 
    ->select('name') 
    ->groupBy('name') 
    ->orderByRaw('COUNT(*) DESC') 
    ->limit(1) 
    ->get(); 

输出:

 
=> Illuminate\Support\Collection {#734 
    all: [ 
     {#738 
     +"name": "cat", 
     }, 
    ], 
    } 

任何方式取也“猫”在同一个查询算?

肯定有

App\Animal::select('name') 
    ->selectRaw('COUNT(*) AS count') 
    ->groupBy('name') 
    ->orderByDesc('count') 
    ->limit(1) 
    ->get(); 
 
=> Illuminate\Database\Eloquent\Collection {#711 
    all: [ 
     App\Animal {#725 
     name: "cat", 
     count: 123 
     }, 
    ], 
    } 
+0

谢谢!任何方式也可以在同一个查询中获取“猫”数量? – Norris

+0

@Norris无后顾之忧。查看已更新的答案 – peterm

+0

我希望我现在可以第二次投票赞成。谢谢 :)。 你如何看待这些?我知道MySQL,并且我知道一些Laravel,但是每当我需要一些自定义逻辑时,将它们混合在一起似乎都是一个谜。 – Norris