【问题标题】:How to use count() WHERE IN in laravel DB:raw如何在 laravel DB:raw 中使用 count() WHERE IN
【发布时间】:2019-07-12 03:39:35
【问题描述】:

如何在Laravel DB:raw 中使用 count() WHERE IN

$report=`societyReport`::select('society_reports.id','society_reports.body','society_reports.created_at',DB::raw("count(votes.vote) as count WHERE vote = 1"))
        ->`leftjoin`('votes', 'votes.society_reports_id','=','society_reports.id')
        ->`groupBy`('society_reports.id')
        ->`orderBy`('society_reports.id', 'DESC')
        ->paginate(10);   

SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 'Where vote = 1

附近使用正确的语法

【问题讨论】:

    标签: mysql laravel


    【解决方案1】:

    请参阅此处以更正您的结构:

    $report= SocietyReport::leftjoin('votes', 'votes.society_reports_id','=','society_reports.id')
            ->groupBy('society_reports.id')
            ->orderBy('society_reports.id', 'DESC')
            ->select(
              'society_reports.id',
              'society_reports.body',
              'society_reports.created_at',
              \DB::raw("count(votes.vote) as count")
            )
            ->where('vote', 1)
            ->paginate(10);
    

    问题是select() 用于选择列或聚合值。如果要添加where子句,需要做->where()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-28
      • 2011-06-17
      • 2021-01-06
      • 2013-11-24
      相关资源
      最近更新 更多