![](/img/trans.png)
[英]Multi-WHERE for two fields in different MySQL tables for a SELECT query
[英]Laravel Query Builder - Multi-where clause
如何在查询生成器中执行where子句?
WHERE
(ENTRY_MODE = 'ACTUAL' AND r.YEAR BETWEEN '2011' AND '2014')
OR
(ENTRY_MODE = 'BUDGETED' AND r.YEAR = '2014')
这是我当前的代码
->where(function($query) use($year, $yearFrom, $yearTo){
$query->where(function($query) use ($year){
$query->where('eh.ENTRY_MODE', 'BUDGETED')
->where('r.YEAR', $year)
})->orWhere(function($query) use ($yearFrom, $yearTo){
$query->where('eh.ENTRY_MODE', 'ACTUAL')
->whereIn('r.YEAR', array($yearFrom, $yearTo))
})
})
上面的代码给我一个syntax error, unexpected '}'
第5行(或Where部分) syntax error, unexpected '}'
只是一个semicolons
问题,请尝试以下操作:
->where(function($query) use($year, $yearFrom, $yearTo){
$query->where(function($query) use ($year){
$query->where('eh.ENTRY_MODE', 'BUDGETED')
->where('r.YEAR', $year); //<--semicolon here
})->orWhere(function($query) use ($yearFrom, $yearTo){
$query->where('eh.ENTRY_MODE', 'ACTUAL')
->whereIn('r.YEAR', array($yearFrom, $yearTo)); //<--semicolon here
}); //<--semicolon here
}); //<-- and one last semicolon here if this is the end of your chain.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.