Eloquent または Fluent を使用した Laravel でのランダム行の取得
データベースからのランダム行の取得は、さまざまなシナリオで便利な操作です。 Laravel は、これを実現するために、Eloquent と Fluent という 2 つの主要な方法を提供します。この記事では、これらのメソッドを利用して Laravel でランダムな行を効率的に取得する方法について説明します。
Eloquent
Laravel バージョン 5.2 以降の場合、inRandomOrder() メソッドはランダムな行を選択する便利な方法。目的のモデルでこのメソッドを呼び出すだけです:
$randomUser = User::inRandomOrder()->get();
これにより、User モデルのランダムなインスタンスが返されます。また、limit() メソッドを使用して取得するランダム行数を指定することもできます。
$randomUsers = User::inRandomOrder()->limit(5)->get();
Fluent
Laravel 5.2 より前のバージョンの場合、Fluent はorderByRaw() を使用してランダムな行を取得する別の方法メソッド:
// Laravel 5.1 and below $randomUser = User::orderByRaw(DB::raw('RAND()'))->get();
行カウントを使用しないランダム レコード取得
カウント操作を実行せずにランダムな行を取得するという目標は、パフォーマンスを考慮した結果です。大規模なデータセットの場合、レコード数のカウントは計算コストが高くなる可能性があります。 SQL で RAND() 関数を利用すると、カウントのオーバーヘッドを発生させることなく、ランダムな行を効率的に取得できます。
結論
この記事で紹介するメソッドは、次のことを提供します。 Eloquent または Fluent を使用して Laravel でランダムな行を取得する効率的な方法。 Laravel 5.2 以降の inRandomOrder() メソッドは、推奨される最も簡単なアプローチです。以前のバージョンの場合、Fluent は orderByRaw() メソッドを通じて実行可能な代替手段を提供します。
以上がEloquentまたはFluentを使用してLaravelでランダムな行を取得する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。