Laravel 5.8,在 where 子句中带有 Count(*) 的棘手子查询
Posted
技术标签:
【中文标题】Laravel 5.8,在 where 子句中带有 Count(*) 的棘手子查询【英文标题】:Laravel 5.8, Tricky subquery with Count(*) in where clause 【发布时间】:2019-08-29 06:28:29 【问题描述】:我需要在 where 子句中写一个有点棘手的子查询
所以,我有一个这样的查询
Select * FROM table1
JOIN table2 ...
LEFT JOIN table3 ...
WHERE (SELECT COUNT(*) FROM some_table where some_condition) = 0;
SQL 工作正常,但如何将其移至 Laravel?
是的,我知道我应该使用DB::raw()
,但问题是子查询返回计数。因此,例如,计数是 5454。在那之后,我有这样的事情。
->where(5454, '=', 0)
它给了我明显的错误信息:Unknown column 5454 ...
我也尝试将AS count
用于子查询,但在这种情况下,我会收到另一个明显的错误消息:Syntax error
0_0
那么,有什么建议吗?
【问题讨论】:
some_condition
是什么?
试试whereRaw("(SELECT COUNT(*) FROM some_table where some_condition) = 0")
@SandeepSudhakaran,谢谢伙计!为什么这么简单? :D 请添加答案,我会接受的:)
我以前也遇到过同样的问题。 :P 快乐编码...
【参考方案1】:
试试
whereRaw("(SELECT COUNT(*) FROM some_table where some_condition) = 0")
这会对你有所帮助。
【讨论】:
酷..快乐编码以上是关于Laravel 5.8,在 where 子句中带有 Count(*) 的棘手子查询的主要内容,如果未能解决你的问题,请参考以下文章
MySQL:在 WHERE 子句中带有 NOT IN 的从属子查询非常慢
为啥以及何时在 WHERE 子句中带有条件的 LEFT JOIN 不等于在 ON 中的相同 LEFT JOIN? [复制]