如何在CakePHP查询中创建'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

如何在新的CakePHP中使用where in子句?我正在努力:

$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。这就是我要找的。