当我要选择where IN
查询时,如何在where子句中定义多个值?
请注意':k'=>1 and ':k'=>
,如何将其用于2个值?
$query = Model::find()->where('id = :id and type = :k' ,[':id'=>$id, ':k'=>1,':k'=>27])->count();
答案 0 :(得分:1)
您可以尝试在阵列上使用IN Baded 假设
$myArray = array(1,27);
$query = Model::find()->where(['IN', 'id', $myArray])
->andWhere('id = :id', [':id' => $id])->count();
答案 1 :(得分:1)
您可以通过以下方式做到这一点:
$types = [1, 27];
$query = Model::find()
->where(['id' => $id])
->andWhere(['type' => $types])
->count();
Yii2会将您的$types
数组转换为IN
条件。 SQL查询将是:
SELECT COUNT(*) FROM <table> WHERE id = <id> AND type IN (1, 27);
答案 2 :(得分:1)
也可以使用数组语法定义条件:
$count = Model::find()
->where([
'AND',
['=', 'id', $id],
['IN', 'type', [1, 27]],
])
->count();