或在Cakephp3.7中的条件,因为在3.7中或不建议使用的条件
select * from Users where Users.state = 'UP' Or (Users.status =1 and Users.role=2)
答案 0 :(得分:0)
您可以将OR
关键字(以及更好的可读性AND
关键字)与嵌套数组语法一起使用:
$query->where([
'OR' => [
'Users.state' => 'UP',
'AND' => [
'Users.status' => 1,
'Users.role' => 2
]
]
]);
或表达式:
$query->where(function (
\Cake\Database\Expression\QueryExpression $exp,
\Cake\ORM\Query $query
) {
return $exp->or_([
'Users.state' => 'UP',
$query->newExpr()->and_([
'Users.status' => 1,
'Users.role' => 2
])
]);
});
另请参见