2017-07-03 49 views

回答

6

雄辯:

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

相關問題