2017-07-13 5 views
0

Laravelでgroup byで列を選択してカウントしますが、カウント値は常に空に戻ります。Laravel 5.4でグループ内の選択数を修正する方法は空です

$data = DB::table('my_table') 
     ->select('column1', DB::raw('count(*) as data_count'))->where('column2', $column2_value) 
     ->groupBy('column1') 
     ->get(); 

誰でも私に解決策を教えてもらえますか?ありがとう!

+1

は、あなたがそれは間違いなく結果が返されますことを確認するために、生のクエリを実行しようとしたことがありますか? –

+0

私は試しました。しかし、それは空に戻ります。 – diepnt

+0

データベースに 'column2' =' $ column2_value'という行がありませんか? –

答えて

0

私はあなたのコードを実行しようとしました。それはうまくいきます。 以下は私が得ている出力です。

*** query *** 
    DB::table('table_name') 
      ->select('name', DB::raw('count(*) as count')) 
      ->where('role','user') 
      ->groupBy('name')->get(); 

*** output *** 
    array:7 [▼ 
     0 => {#117 ▼ 
     +"name": "" 
     +"count": 5 
     } 
     1 => {#119 ▼ 
     +"name": "test comp 2 owner" 
     +"count": 1 
     } 
     2 => {#120 ▼ 
     +"name": "Test Expert User" 
     +"count": 1 
     } 
     3 => {#121 ▼ 
     +"name": "Test namwe" 
     +"count": 1 
     } 
     4 => {#122 ▼ 
     +"name": "test owner" 
     +"count": 1 
     } 
     5 => {#123 ▼ 
     +"name": "Test Prof User" 
     +"count": 1 
     } 
     6 => {#124 ▼ 
     +"name": "Test Wp Prof User" 
     +"count": 1 
     } 
    ] 
+0

なぜ私のバージョンでの実行に問題があるのか​​分かりません。私はLaravel 5.4を使用します。 – diepnt

0

これを試してみてください:

$data = DB::table('my_table') 
    ->selectRaw('column1, count(column1) as data_count'))->where('column2', $column2_value) 
    ->groupBy('column1') 
    ->get(); 
+0

私は試してみました。それは例外を返します: Builder.php行のerrorException array_merge_recursive():引数#2が配列ではありません – diepnt

+0

'bootstrap/cache/services.json'を削除して 'cache:clear' 'composer update'を再実行します。それを解決する必要があります。 –

+0

はい。クリアした後、それは実行されていた。しかし、data_countは常に空に戻ります。 – diepnt

関連する問題