Wie erhalte ich zufällige Zeilen aus einer Datenbanktabelle in Laravel?

Barbara Streisand
Freigeben: 2024-11-21 16:14:10
Original
391 Leute haben es durchsucht

How do I get random rows from a database table in Laravel?

Zufällige Zeilen in Laravel abrufen

Um eine zufällige Zeile aus einer Datenbanktabelle mit dem Eloquent ORM oder Fluent Query Builder von Laravel abzurufen, gibt es mehrere Verfügbare Ansätze, abhängig von der Laravel-Version, die Sie verwenden.

Laravel 5.2 und höher

In Laravel 5.2 und späteren Versionen können Sie die inRandomOrder()-Methode verwenden:

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

Laravel 5.1 und früher

Vor Laravel 5.2 würden Sie zum Erreichen die reine SQL-Syntax verwenden Zufälligkeit:

$randomUser = User::orderByRaw("RAND()")->first();
$randomUsers = User::orderByRaw("RAND()")->take(5)->get();
Nach dem Login kopieren

Laravel 3

Verwenden Sie in Laravel 3 die Methode order_by() mit der Funktion DB::raw():

$randomUser = User::order_by(DB::raw("RAND()"))->first();
$randomUsers = User::order_by(DB::raw("RAND()"))->take(5)->get();
Nach dem Login kopieren

Sammlungen verwenden

Alternativ können Sie verwenden die Methoden random() oder random($count) von Collections, um ein zufälliges Element oder Array zufälliger Elemente zu erhalten:

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

Überlegungen

In SQL ist die ORDER BY RAND() kann bei großen Tabellen ineffizient sein, da die Datenbank-Engine alle Datensätze sortieren muss. Für eine bessere Leistung sollten Sie alternative Ansätze wie Sampling oder Indizierung in Betracht ziehen.

Das obige ist der detaillierte Inhalt vonWie erhalte ich zufällige Zeilen aus einer Datenbanktabelle in 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