首頁 >後端開發 >php教程 >如何使用 Eloquent 或 Fluent 檢索 Laravel 中的隨機行?

如何使用 Eloquent 或 Fluent 檢索 Laravel 中的隨機行?

Patricia Arquette
Patricia Arquette原創
2024-11-16 12:31:03472瀏覽

How to Retrieve Random Rows in Laravel Using Eloquent or Fluent?

在 Laravel 中使用 Eloquent 或 Fluent 選擇隨機行

從資料庫表中擷取隨機行是 Web 應用程式中的常見任務。 Laravel 提供了多種方法來使用 Eloquent 或 Fluent 查詢建構器來完成此任務。

使用Eloquent (Laravel >= 5.2)

自Laravel 5.2 開始,框架引入了inRandomOrder() 方法,該方法提供了一種檢索隨機行的便捷方法。以下程式碼說明如何使用它:

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

要檢索特定數量的隨機記錄,請使用limit() 方法:

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

或者,您可以使用random集合提供的() 方法擷取單一隨機記錄:

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

使用Fluent (Laravel

對於5.2 之前的Laravel 版本,您可以使用Fluent 的orderByRaw() 方法對結果進行隨機排序:

$randomUsers = User::orderByRaw(DB::raw('RAND()'))->get();

使用SQL with Fluent

如果您喜歡使用純SQL,您可以在Fluent 語句中編寫以下查詢:

$randomUsers = DB::table('users')->orderByRaw('RAND()')->get();

請注意,這種方法需要您在初始查詢之前計算記錄數,這對於大型資料集可能效率低下。

結論

在 Laravel 中選擇隨機行可以使用 Eloquent 或流利。 Eloquent 中的 inRandomOrder() 方法為 Laravel 5.2 及更高版本提供了最有效、最直接的方法來執行此操作。對於舊版本,Fluent 的 orderByRaw() 方法提供了一個可行的替代方案,儘管它有一些限制。

以上是如何使用 Eloquent 或 Fluent 檢索 Laravel 中的隨機行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn