Where ist bei Abfragen im Yii-Modell von entscheidender Bedeutung.
Wobei die Methode als
wo der Parameter deklariert ist $condition Der Typ ist String oder Array
1. String
String ist am einfachsten. Schreiben Sie ihn einfach direkt entsprechend der Where-Bedingung in SQL, z. B.
2. Array
Wenn es sich um ein Array handelt, gibt es zwei Formate Verfahren.
Die erste Schreibweise:
Wenn der Wert eine Zeichenfolge oder Zahl usw. ist, ist das Format der generierten bedingten Anweisung Spalte1= Wert1 UND Spalte2=Wert2 UND ....
['type' => 1, 'status' => Generieren Sie
(Typ = 1) UND (Status = 2)
Wenn der Wert ein Array ist, dann istINAnweisung;
//Generieren
(id IN (1, 2, 3)) AND (status = 2) Wenn der Wert Null ist, dann wird die Anweisung Ist Null verwendet generiert werden.
['status' => null]
//Generieren
Status ist NULL Die zweite Schreibweise generiert unterschiedliche SQL-Bedingungen basierend auf unterschiedlichen Operatoren.// Generiere
id=1 AND id=2Wenn ein Operand auch ein Array ist, wird er in einen String im folgenden Format konvertiert, z
['and', 'type=1', ['or', 'id=1', 'id=2']]//Generieren
type=1 AND (id=1 OR id=2)
Hinweis: Diese Methode referenziert oder kodiert nicht.
oder://Generiere
id ZWISCHEN 1 UND 10 nicht zwischen://
id IN (1, 2, 3) generierenHinweis: Diese Methode verweist auf die Spalte und codiert auch die Werte im Array.
nicht in://Generiere
Name LIKE '%tester%'Wenn der Wert ein Array ist, werden mehrere ähnliche Anweisungen generiert und mit
AND verbunden. wie ['like', 'name', ['test', 'sample']]//Generiere
Name LIKE '%test%' AND name LIKE '%sample%'Hinweis: Diese Methode referenziert die Spalte und codiert auch die Werte im Array.
Manchmal müssen Sie % möglicherweise selbst verwalten. Dann können Sie den dritten Parameter verwenden://Generiere
Name LIKE '%tester' or like: