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!