Lorsque je veux sélectionner la requête IN
where, comment définir plusieurs valeurs dans la clause where?
Remarque sur le ': k' => 1 et ': k' =>
, comment l'utiliser pour 2 valeurs?
$query = Model::find()->where('id = :id and type = :k' ,[':id'=>$id, ':k'=>1,':k'=>27])->count();
3 Réponses :
Vous pouvez essayer d'utiliser IN baded sur un tableau en supposant
$myArray = array(1,27); $query = Model::find()->where(['IN', 'id', $myArray]) ->andWhere('id = :id', [':id' => $id])->count();
Vous pouvez le faire de cette manière:
SELECT COUNT(*) FROM <table> WHERE id = <id> AND type IN (1, 27);
Yii2 convertira votre tableau $ types
en condition IN
. La requête SQL sera:
$types = [1, 27]; $query = Model::find() ->where(['id' => $id]) ->andWhere(['type' => $types]) ->count();
Les conditions peuvent également être définies à l'aide de la syntaxe de tableau:
$count = Model::find() ->where([ 'AND', ['=', 'id', $id], ['IN', 'type', [1, 27]], ]) ->count();