Heim > Backend-Entwicklung > PHP-Tutorial > Wie wähle ich zufällige Zeilen in Laravel mit Eloquent und Fluent aus?

Wie wähle ich zufällige Zeilen in Laravel mit Eloquent und Fluent aus?

Barbara Streisand
Freigeben: 2024-11-12 00:42:03
Original
550 Leute haben es durchsucht

How to Select Random Rows in Laravel Using Eloquent and Fluent?

Zufällige Zeilen in Laravel mit Eloquent und Fluent auswählen

Bei der Arbeit mit großen Datensätzen ist es oft notwendig, zufällige Zeilen aus der Datenbank abzurufen ohne eine vorbereitende Zählung durchführen zu müssen. Laravel bietet mehrere Optionen, um dies mithilfe von Eloquent- und Fluent-Schnittstellen zu erreichen.

Eloquent

Laravel 5.2 und höher bietet die inRandomOrder()-Methode:

User::inRandomOrder()->get();
Nach dem Login kopieren

Diese Methode gibt eine Sammlung aller zufälligen Zeilen aus dem angegebenen Modell zurück. Um die Anzahl der abgerufenen Zeilen zu begrenzen, verwenden Sie die limit()-Methode:

User::inRandomOrder()->limit(5)->get();
Nach dem Login kopieren

Um eine einzelne zufällige Zeile abzurufen, verwenden Sie die first()-Methode:

User::inRandomOrder()->first();
Nach dem Login kopieren

Für ältere Versionen von Laravel (4.2.7 - 5.1) können Sie die Methode orderByRaw() verwenden:

User::orderByRaw("RAND()")->get();
Nach dem Login kopieren

Für Laravel-Versionen 4.0 - 4.2.6, verwenden Sie:

User::orderBy(DB::raw('RAND()'))->get();
Nach dem Login kopieren

Fluent

In Versionen von Laravel vor 5.2 wurde die Methode order_by() mit DB::raw( verwendet ) Hilfsfunktion:

User::order_by(DB::raw('RAND()'))->get();
Nach dem Login kopieren

Zusätzlich Überlegungen

Es ist wichtig zu beachten, dass die orderBy()-Methode derzeit keine anderen Argumente als ASC oder DESC zulässt. Daher ist es notwendig, die Methode orderByRaw() oder die Methode inRandomOrder() zum Auswählen zufälliger Zeilen zu verwenden.

Überlegungen zur Leistung

Beim Abrufen einer großen Anzahl von Zeilen ist dies der Fall Es ist wichtig, die Auswirkungen auf die Leistung zu berücksichtigen. Die Verwendung der inRandomOrder()-Methode kann effizienter sein als die Verwendung der orderByRaw()-Methode, da keine zusätzliche Unterabfrage zum Generieren einer zufälligen Reihenfolge erforderlich ist.

Das obige ist der detaillierte Inhalt vonWie wähle ich zufällige Zeilen in Laravel mit Eloquent und Fluent aus?. 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