Heim > Backend-Entwicklung > PHP-Tutorial > Wie rufe ich zufällige Zeilen in Laravel mit Eloquent oder Fluent ab?

Wie rufe ich zufällige Zeilen in Laravel mit Eloquent oder Fluent ab?

Patricia Arquette
Freigeben: 2024-11-16 12:31:03
Original
470 Leute haben es durchsucht

How to Retrieve Random Rows in Laravel Using Eloquent or Fluent?

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

Das Abrufen zufälliger Zeilen aus einer Datenbanktabelle ist eine häufige Aufgabe in Webanwendungen. Laravel bietet mehrere Methoden, um diese Aufgabe mit dem Eloquent- oder Fluent-Abfrage-Builder zu erfüllen.

Verwendung von Eloquent (Laravel >= 5.2)

Seit Laravel 5.2 das Framework führte die Methode inRandomOrder() ein, die eine bequeme Möglichkeit bietet, zufällige Zeilen abzurufen. Der folgende Code veranschaulicht die Verwendung:

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

Um eine bestimmte Anzahl zufälliger Datensätze abzurufen, verwenden Sie die limit()-Methode:

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

Alternativ können Sie die Zufallsmethode verwenden () von Sammlungen bereitgestellte Methode zum Abrufen eines einzelnen Zufallsdatensatzes:

$randomUser = User::all()->random();
Nach dem Login kopieren

Mit Fluent (Laravel < 5.2)

Für Versionen von Laravel vor 5.2 können Sie die orderByRaw()-Methode von Fluent verwenden, um die Ergebnisse zufällig zu ordnen:

$randomUsers = User::orderByRaw(DB::raw('RAND()'))->get();<p><strong>SQL mit Fluent verwenden</strong></p>
<p>Wenn Sie lieber reines SQL verwenden möchten, können Sie die folgende Abfrage in Ihrem Fluent schreiben Aussage:</p>
<pre class="brush:php;toolbar:false">$randomUsers = DB::table('users')->orderByRaw('RAND()')->get();
Nach dem Login kopieren

Beachten Sie, dass Sie bei diesem Ansatz die Anzahl der Datensätze vor der ersten Abfrage zählen müssen, was bei großen Datensätzen ineffizient sein kann.

Schlussfolgerung

Die Auswahl zufälliger Zeilen in Laravel kann entweder mit Eloquent oder Fluent erreicht werden. Die inRandomOrder()-Methode in Eloquent bietet die effizienteste und einfachste Möglichkeit, dies für Laravel 5.2 und höher zu tun. Für ältere Versionen bietet die orderByRaw()-Methode von Fluent eine praktikable Alternative, obwohl sie einige Einschränkungen aufweist.

Das obige ist der detaillierte Inhalt vonWie rufe ich zufällige Zeilen in Laravel mit Eloquent oder Fluent ab?. 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