Heim > PHP-Framework > YII > Hauptteil

So führen Sie eine bedingte Abfrage im YII-Framework durch

爱喝马黛茶的安东尼
Freigeben: 2019-12-07 15:33:15
Original
2571 Leute haben es durchsucht

So führen Sie eine bedingte Abfrage im YII-Framework durch

Bedingte Abfrage

$customers = Customer::find()->where($cond)->all();
Nach dem Login kopieren

$cond ist das, was wir Bedingungen nennen, und die Art und Weise, Bedingungen zu schreiben, hängt auch davon ab Es gibt Unterschiede in den Abfragedaten. Wie schreibt man also Abfragebedingungen mit yii2?

[[Einfache Bedingung]]

// 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]
Nach dem Login kopieren

[und]: Kombinieren Sie verschiedene Bedingungen miteinander, Anwendungsbeispiel:

//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'],  
    ]  
]
Nach dem Login kopieren

[[or]]:

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

[[not]]:

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

[[between]]: nicht zwischen hat die gleiche Verwendung

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

[[in]]: nicht in hat die gleiche Verwendung

//SQL:`id IN (1, 2, 3)`  
$cond = ['in', 'id', [1, 2, 3]] or $cond = ['id'=>[1, 2, 3]]
Nach dem Login kopieren
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])]
Nach dem Login kopieren

[[exists]]: nicht vorhanden Die Verwendung ähnelt der von

//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]
Nach dem Login kopieren

Darüber hinaus können Sie einen beliebigen Operator wie folgt angeben:

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

PHP Chinesische Website, Es gibt viele kostenlose Yii-Einführungs-Tutorials, jeder ist herzlich willkommen, es zu lernen!

Das obige ist der detaillierte Inhalt vonSo führen Sie eine bedingte Abfrage im YII-Framework durch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!