Yii2选择查询,其中包含多个值

Yii2选择查询,其中包含多个值,yii2,where-clause,Yii2,Where Clause,当我想在查询中选择where时,如何在where子句中定义多个值 关于”:k'=>1和“:k'=>的注释,如何将其用于2个值 $query = Model::find()->where('id = :id and type = :k' ,[':id'=>$id, ':k'=>1,':k'=>27])->count(); 您可以尝试在阵列上使用IN-baed 假定 $myArray = array(1,27); $query = Model::find()->

当我想在查询中选择where
时,如何在where子句中定义多个值

关于
”:k'=>1和“:k'=>
的注释,如何将其用于2个值

$query = Model::find()->where('id = :id and type = :k' ,[':id'=>$id, ':k'=>1,':k'=>27])->count();

您可以尝试在阵列上使用IN-baed 假定

$myArray = array(1,27);
$query = Model::find()->where(['IN', 'id', $myArray])
    ->andWhere('id = :id', [':id' => $id])->count();

您可以这样做:

$types = [1, 27];
$query = Model::find()
    ->where(['id' => $id])
    ->andWhere(['type' => $types])
    ->count();
Yii2将把
$types
数组转换为
中的
。SQL查询将是:

SELECT COUNT(*) FROM <table> WHERE id = <id> AND type IN (1, 27);
从其中id=选择COUNT(*),并键入(1,27);

也可以使用数组语法定义条件:

$count = Model::find()
    ->where([
        'AND',
        ['=', 'id', $id],
        ['IN', 'type', [1, 27]],
    ])
    ->count();