where($cond)->all();". $cond est ce que nous appelons une condition, et la façon dont la condition est écrite varie en fonction des données de la requête."/> where($cond)->all();". $cond est ce que nous appelons une condition, et la façon dont la condition est écrite varie en fonction des données de la requête.">

Maison >cadre php >YII >Comment interroger conditionnellement dans le framework yii

Comment interroger conditionnellement dans le framework yii

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼original
2019-12-07 15:33:152654parcourir

Comment interroger conditionnellement dans le framework yii

Requête conditionnelle

$customers = Customer::find()->where($cond)->all();

$cond est ce que nous appelons conditions, et la manière d'écrire les conditions dépend aussi de les données de requête. Il existe des différences, alors comment écrire des conditions de requête en utilisant yii2 ?

[[Condition simple]]

// SQL: (type = 1) AND (status = 2).  
$cond = ['type' => 1, 'status' => 2]   
// SQL:(id IN (1, 2, 3)) AND (status = 2)  
$cond = ['id' => [1, 2, 3], 'status' => 2]   
//SQL:status IS NULL  
$cond = ['status' => null]

[et] : Combinez différentes conditions ensemble, exemple d'utilisation :

//SQL:`id=1 AND id=2`  
$cond = ['and', 'id=1', 'id=2']  
//SQL:`type=1 AND (id=1 OR id=2)`  
$cond = ['and', 'type=1', ['or', 'id=1', 'id=2']]  
//SQL:`type=1 AND (id=1 OR id=2)` //此写法'='可以换成其他操作符,例:in like != >=等  
$cond = [  
    'and',  
    ['=', 'type', 1],  
    [  
        'or',  
        ['=', 'id', '1'],  
        ['=', 'id', '2'],  
    ]  
]

[[ou]]:

/SQL:`(type IN (7, 8, 9) OR (id IN (1, 2, 3)))`  
$cond = ['or', ['type' => [7, 8, 9]], ['id' => [1, 2, 3]]

[[not]]:

//SQL:`NOT (attribute IS NULL)`  
$cond = ['not', ['attribute' => null]]

[[entre]] : pas entre a le même usage

//SQL:`id BETWEEN 1 AND 10`  
$cond = ['between', 'id', 1, 10]

[[in]] : pas dans a le même usage

//SQL:`id IN (1, 2, 3)`  
$cond = ['in', 'id', [1, 2, 3]] or $cond = ['id'=>[1, 2, 3]]
rrree

[[like]] :

//IN条件也适用于多字段  
$cond = ['in', ['id', 'name'], [['id' => 1, 'name' => 'foo'], ['id' => 2, 'name' => 'bar']]]  
//也适用于内嵌sql语句  
$cond = ['in', 'user_id', (new Query())->select('id')->from('users')->where(['active' => 1])]

[[exists]] : n'existe pas, l'utilisation est similaire à

//SQL:`name LIKE '%tester%'`
$cond = ['like', 'name', 'tester']
//SQL:`name LIKE '%test%' AND name LIKE '%sample%'`
$cond = ['like', 'name', ['test', 'sample']]
//SQL:`name LIKE '%tester'`
$cond = ['like', 'name', '%tester', false]

De plus, vous pouvez spécifier n'importe quel opérateur comme suit :

//SQL:EXISTS (SELECT "id" FROM "users" WHERE "active"=1)
$cond = ['exists', (new Query())->select('id')->from('users')->where(['active' => 1])]

Site Web PHP chinois, il existe de nombreux tutoriels d'introduction Yii gratuits, tout le monde est invité à apprendre !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn