Laravel でランダムな行を取得する
Laravel の Eloquent ORM または Fluent クエリ ビルダーを使用してデータベース テーブルからランダムな行を取得するには、いくつかの方法があります。 Laravel のバージョンに応じて利用可能なアプローチusing.
Laravel 5.2 以降
Laravel 5.2 以降のバージョンでは、inRandomOrder() メソッドを利用できます:
$randomUser = User::inRandomOrder()->first(); $randomUsers = User::inRandomOrder()->take(5)->get();
Laravel 5.1 および以前
Laravel 5.2 より前では、生の SQL 構文を使用してランダム性を実現していました。
$randomUser = User::orderByRaw("RAND()")->first(); $randomUsers = User::orderByRaw("RAND()")->take(5)->get();
Laravel 3
Laravel 3、order_by() メソッドを DB::raw() とともに使用します。 function:
$randomUser = User::order_by(DB::raw("RAND()"))->first(); $randomUsers = User::order_by(DB::raw("RAND()"))->take(5)->get();
コレクションの使用
あるいは、コレクションのrandom() メソッドまたはrandom($count) メソッドを使用して、ランダムな要素または配列を取得することもできます。ランダムの要素:
$randomUser = User::all()->random(); $randomUsers = User::all()->random(10);
考慮事項
SQL では、ORDER BY RAND() はデータベース エンジンがすべてのテーブルを並べ替える必要があるため、大きなテーブルに対して非効率的になる可能性があります。記録。パフォーマンスを向上させるには、サンプリングやインデックス作成などの代替アプローチの使用を検討してください。
以上がLaravelでデータベーステーブルからランダムな行を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。