mysql - 如何在 laravel DB:raw 中使用 count() WHERE IN
问题描述
如何在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 附近使用正确的语法
解决方案
请参阅此以更正您的结构:
$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()
推荐阅读
- go - 带有许多嵌套的结构填充错误
- neo4j - 可选匹配上的 Cyper 合并
- javascript - 显示不正确
- perl - 如何将字母替换为某个数字
- angular6 - 如何在离子选项中显示 SELECTED 值
- javascript - 如何创建一个尽可能小的变量?
- c++ - 如何在没有crt的情况下链接obj文件?
- python-3.x - 如何使用 Pandas 更改 Excel 中第一行的颜色
- ssrs-2012 - 将第二行与同一列中的第一行值相除
- scala - How do I take a list of keys that contains the value of the inputted key in the table in Scala