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();
あるいは、ランダム メソッドを使用することもできます。 () 単一のランダム レコードを取得するためにコレクションによって提供されるメソッド:
$randomUser = User::all()->random();
Fluent の使用(Laravel
5.2 より前のバージョンの Laravel では、Fluent の orderByRaw() メソッドを使用して結果をランダムに並べることができます。
$randomUsers = User::orderByRaw(DB::raw('RAND()'))->get();
使用Fluent を使用した SQL
を使用したい場合純粋な SQL を使用する場合は、Fluent ステートメントに次のクエリを記述できます。
$randomUsers = DB::table('users')->orderByRaw('RAND()')->get();
このアプローチでは、最初のクエリの前にレコード数をカウントする必要があることに注意してください。これは、大規模なデータセットの場合は非効率的になる可能性があります。
結論
Laravel でランダムな行を選択するには、次のいずれかを使用します。雄弁または流暢。 Eloquent の inRandomOrder() メソッドは、Laravel 5.2 以降でこれを行うための最も効率的かつ簡単な方法を提供します。古いバージョンの場合、Fluent の orderByRaw() メソッドは実行可能な代替手段を提供しますが、いくつかの制限があります。
以上がEloquentまたはFluentを使用してLaravelでランダムな行を取得する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。