Heim > Artikel > Backend-Entwicklung > Wie erhalte ich zufällige Zeilen aus einer Datenbanktabelle 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();
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();
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();
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);
Ü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!