Laravelでデータベーステーブルからランダムな行を取得するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-21 16:14:10
オリジナル
386 人が閲覧しました

How do I get random rows from a database table in Laravel?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート