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
Patricia ArquetteOriginal
2024-11-16 12:31:03503Durchsuche

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();

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

$randomUsers = User::inRandomOrder()->limit(5)->get();

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

$randomUser = User::all()->random();

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();

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!

Stellungnahme:
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