Heim >Backend-Entwicklung >PHP-Tutorial >Wie erstellt man komplexe ODER- und UND-Abfragen mit Eloquent von Laravel?
Komplexe Abfragen in Laravel: ODER und UND mit Eloquent Query Builder
Bei der Erstellung komplexer Abfragen in Laravel kann es Situationen geben, in denen Sie dies benötigen Kombinieren mehrerer Bedingungen mit OR- und AND-Operatoren. Wie kann dies mit dem Eloquent Query Builder erreicht werden?
OR..AND-Abfragen mit logischer Gruppierung
Für Abfragen mit ODER-Bedingungen, gefolgt von UND-Bedingungen, Laravel 7. x/4.2 bietet eine praktische Lösung: logische Gruppierung. Betrachten Sie die folgende Abfrage:
WHERE (a = 1 OR b =1 ) AND (c = 1 OR d = 1)
Mithilfe der logischen Gruppierung kann diese Abfrage wie folgt übersetzt werden:
Model::where(function ($query) { $query->where('a', '=', 1) ->orWhere('b', '=', 1); }) ->where(function ($query) { $query->where('c', '=', 1) ->orWhere('d', '=', 1); });
Mit diesem Ansatz können Sie mehrere verschachtelte ODER-Bedingungen definieren.
Komplexe Abfragen: Raw SQL
Während die logische Gruppierungstechnik ideal ist für Bei einfacheren OR..AND-Abfragen kann bei komplexeren Szenarien die Verwendung von Roh-SQL erforderlich sein. Hier ist ein Beispiel:
Model::whereRaw( '(a = 1 OR b = 1) AND (c = 1 OR d = 1)' );
Zusammenfassung:
Die logische Gruppierungsfunktion von Eloquent bietet eine elegante Lösung für OR..AND-Abfragen. Für komplexere Szenarien bietet Roh-SQL jedoch möglicherweise mehr Flexibilität und Kontrolle. Erwägen Sie den geeigneten Ansatz basierend auf der Komplexität Ihrer Anfrage.
Das obige ist der detaillierte Inhalt vonWie erstellt man komplexe ODER- und UND-Abfragen mit Eloquent von Laravel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!