在 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中文網其他相關文章!