如何在CakePHP查询中创建'IN'子句?
如何在新的CakePHP中使用where in子句?我正在努力:如何在CakePHP查询中创建'IN'子句?,cakephp,cakephp-3.0,query-builder,Cakephp,Cakephp 3.0,Query Builder,如何在新的CakePHP中使用where in子句?我正在努力: $restaurants->find()->where(['id' => $r_ids])->all(); 其中,$r\u ids是我在查询中需要的ID数组,但这不符合预期。对于CakePHP 3.x,现在需要指示数据类型,对于值数组,需要在类型后面附加[]: $query = $articles ->find() ->where(['id' => $ids], ['id
$restaurants->find()->where(['id' => $r_ids])->all();
其中,
$r\u ids
是我在查询中需要的ID数组,但这不符合预期。对于CakePHP 3.x,现在需要指示数据类型,对于值数组,需要在类型后面附加[]
:
$query = $articles
->find()
->where(['id' => $ids], ['id' => 'integer[]']);
或者明确使用关键字中的:
$query = $articles
->find()
->where(['id IN' => $ids]);
另见
在CakePHP 3.x上试试这个
$query = $restaurants
->find()
->where(['id IN' => $r_ids]);
$query->all();
您还可以使用简短语法:
$result=$restaurants->find('all'),
['conditions'=>['id IN'=>$r\u id]]
)->全部();
在Cakephp 3.x中,如果您有多个where条件,那么您的查询将如下所示:
return $this
->find()
->contain([
'XYZ.Articles',
'YYY.Managers',
'ZZZ.Readers',
])
->where([
'ID' => $ids,
'READER.STATUS' => $xyz,
],[
'ID' => 'integer[]'
])
;
如果我们必须在in子句中检查多个列,那么怎么办?在这种情况下要做什么:->其中(['id,name in'=>??])@rack_nilesh您必须使用元组比较表达式:tysm。这就是我要找的。