php - Laravel Eloquent 计数乘法

标签 php mysql laravel eloquent

我目前有:

  $emails = Email::select('username', DB::raw('count(*) as total'))
        ->groupBy('username')
        ->get();

返回:

     {'username' => 'example', 'total'=>'120' }

我想做的是同时获取某个行值的计数,其中行值等于 1,以获得:

      {'username' => 'example', 'total'=>'120', 'sent' => '23' }

喜欢:

     DB::raw('count(sentitems) as sent WHERE sentitems = 1')

但当然这样不行。

最佳答案

如果我没理解错的话,你的意思是这样的:

$emails = Email::select('username', DB::raw('count(*) as total'), DB::raw('count(case sentitems when 1 then 1 else null end) as sent')))
    ->groupBy('username')
    ->get();

关于php - Laravel Eloquent 计数乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33427427/

相关文章:

php mysql bind_param 仅插入单行

php - 移动保留原始 ID 但允许在目标表中自动递增的行

php - 捕获传入的请求数据

php - 有没有办法在从插入时间算起的一定时间后从 mysql 中删除一行

php - 应用服务层——如何编写API方法接口(interface)

mysql - 如何使用 SQL 将小时范围转换为总小时数?

php - Codeigniter *多图像上传*保存到数据库问题

php - 从单独的 .php 表初始化 dataTable

php - Laravel:查询仅获取一个相关的 id

php - 我如何在 Laravel 中获取特定用户的所有帖子?