Heim > Backend-Entwicklung > PHP-Tutorial > Wie erstellt man komplexe ODER- und UND-Abfragen mit Eloquent von Laravel?

Wie erstellt man komplexe ODER- und UND-Abfragen mit Eloquent von Laravel?

Mary-Kate Olsen
Freigeben: 2024-11-27 20:14:10
Original
1059 Leute haben es durchsucht

How to Build Complex OR and AND Queries with Laravel's Eloquent?

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

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);
});
Nach dem Login kopieren

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)'
);
Nach dem Login kopieren

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!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage