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

Comment interroger conditionnellement dans le framework yii

爱喝马黛茶的安东尼
Libérer: 2019-12-07 15:33:15
original
2644 Les gens l'ont consulté

Comment interroger conditionnellement dans le framework yii

Requête conditionnelle

$customers = Customer::find()->where($cond)->all();
Copier après la connexion

$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]
Copier après la connexion

[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'],  
    ]  
]
Copier après la connexion

[[ou]]:

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

[[not]]:

//SQL:`NOT (attribute IS NULL)`  
$cond = ['not', ['attribute' => null]]
Copier après la connexion

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

//SQL:`id BETWEEN 1 AND 10`  
$cond = ['between', 'id', 1, 10]
Copier après la connexion

[[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]]
Copier après la connexion
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])]
Copier après la connexion

[[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]
Copier après la connexion

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])]
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal