2016-12-19 8 views
1

Laravel count()関数を使用して行の数を取得しようとしました。私は以下の2行のテーブルの行の数を数えるコードがあります。laravelでmysqlクエリを使用する行の数をカウント

例1:

$row = DB::table('log_user_login') 
       ->select(DB::raw('log_user_login.Password as LogPassword'), 'user.*') 
       ->join('user', 'log_user_login.Username', '=', 'user.Username') 
       ->where('log_user_login.LoginSession', '!=', '') 
       ->groupBy('user.ID') 
       ->get(); 
$count = sizeof($row); 

例2:

$count = DB::table('log_user_login') 
      ->select(DB::raw('log_user_login.Password as LogPassword'), 'user.*') 
      ->join('user', 'log_user_login.Username', '=', 'user.Username') 
      ->where('log_user_login.LoginSession', '!=', '') 
      ->groupBy('user.ID') 
      ->count(); 

I echo $countフォーム例1、$countの数は15415.である。しかし、実施例2の$countは私に89を返すとき、私は知っているかもしれませんなぜこれが起こり、get()を使用せずに行数を取得するにはどうすればよいですか?

答えて

3

例1はsizeof配列をバイト単位で表示しますが、例2ではtableが返す合計カウントを表示します。

ので、合計数を取得するための最良の方法を使用している - の例で行わ>数()として

2.あなたがあなたの答えを得た願っています。

0

sizeof()は使用しないでください。多くの時間、割り当てられたメモリの戻り量。

sizeof()の代わりにcount()を使用します。

1
Please try it. 
$row = DB::table('log_user_login') 
       ->select(DB::raw('log_user_login.Password as LogPassword'), 'user.*') 
       ->join('user', 'log_user_login.Username', '=', 'user.Username') 
       ->where('log_user_login.LoginSession', '!=', '') 
       ->groupBy('user.ID') 
       ->get(); 
echo $count = count($row); 
関連する問題