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

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

Patricia Arquette
Patricia ArquetteOriginal
2024-11-11 22:36:03344Durchsuche

How to Retrieve a Random Row in Laravel Using Eloquent or Fluent?

Zufälliger Zeilenabruf in Laravel mit Eloquent oder Fluent

Das Abrufen einer zufälligen Zeile aus einer Datenbank kann in verschiedenen Szenarien ein nützlicher Vorgang sein. Laravel bietet hierfür zwei Hauptmethoden an: Eloquent und Fluent. In diesem Artikel wird untersucht, wie Sie diese Methoden nutzen können, um eine zufällige Zeile in Laravel effizient abzurufen.

Eloquent

Für Laravel-Versionen 5.2 und höher bietet die inRandomOrder()-Methode eine bequeme Möglichkeit, eine zufällige Zeile auszuwählen. Rufen Sie einfach diese Methode für das gewünschte Modell auf:

$randomUser = User::inRandomOrder()->get();

Dadurch wird eine zufällige Instanz des Benutzermodells zurückgegeben. Sie können auch die Anzahl der zufälligen Zeilen angeben, die mithilfe der limit()-Methode abgerufen werden sollen:

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

Fluent

Für Versionen vor Laravel 5.2 bietet Fluent eine Alternative Möglichkeit, zufällige Zeilen mithilfe der Methode orderByRaw() abzurufen:

// Laravel 5.1 and below
$randomUser = User::orderByRaw(DB::raw('RAND()'))->get();

Zufälliger Datensatzabruf ohne Zeilenanzahl

Das Ziel, eine zufällige Zeile abzurufen, ohne eine auszuführen Der Zählvorgang ergibt sich aus Leistungsüberlegungen. Das Zählen der Anzahl der Datensätze kann bei großen Datensätzen rechenintensiv sein. Durch die Verwendung der RAND()-Funktion in SQL können wir effizient eine zufällige Zeile erhalten, ohne den Mehraufwand des Zählens zu verursachen.

Fazit

Die in diesem Artikel vorgestellten Methoden liefern effiziente Möglichkeiten, eine zufällige Zeile in Laravel mit Eloquent oder Fluent abzurufen. Die inRandomOrder()-Methode in Laravel 5.2 und höher ist der bevorzugte und einfachste Ansatz. Für frühere Versionen bietet Fluent über die Methode orderByRaw() eine praktikable Alternative.

Das obige ist der detaillierte Inhalt vonWie rufe ich eine zufällige Zeile 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