【问题标题】:Laravel : How to count in queryLaravel:如何在查询中计数
【发布时间】:2016-11-19 17:59:59
【问题描述】:

我有以下疑问:

App\User::join('gift_sents', function($builder){
      $builder->on('gift_sents.receiver_id', '=', 'users.id');
      })
      ->select('users.*', 'COUNT(gift_sents.receiver_id as total_posts')
      ->groupBy('gift_sents.id')
      ->orderBy('total_posts', 'ASC')
      ->limit(3)->get();

计数不工作,它应该工作!

出现以下错误:

Column not found: 1054 Unknown column 'COUNT(gift_sents.receiver_id' in 'field list' (SQL: select用户.*, COUNT(gift_sents . receiver_id as TOTAL_POSTS from用户inner join gift_sents on gift_sents . receiver_id =用户. ID group by gift_sents @ 987654333@idorder bytotal_postsasc limit 3)

【问题讨论】:

  • 您的选择语句中有错字,请确保关闭您的 COUNT 左括号。 ->select('users.*', 'COUNT(gift_sents.receiver_id as total_posts)')
  • 还是不行!
  • 错误:Unknown column 'count(gift_sents.receiver_id)'

标签: php mysql laravel laravel-5 eloquent


【解决方案1】:

我认为应该是:

  ->select('users.*', DB::raw('COUNT(gift_sents.receiver_id) as total_posts'))

参见 doc here - “原始表达式”部分

【讨论】:

    【解决方案2】:

    代替:

    ->select('users.*', 'COUNT(gift_sents.receiver_id as total_posts')
    

    你应该使用:

    ->selectRaw('users.*, COUNT(gift_sents.receiver_id) as total_posts')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-21
      相关资源
      最近更新 更多