EloquentとFluentを使用してLaravelでランダムな行を選択する方法?

Barbara Streisand
リリース: 2024-11-12 00:42:03
オリジナル
515 人が閲覧しました

How to Select Random Rows in Laravel Using Eloquent and Fluent?

Eloquent と Fluent を使用した Laravel でのランダム行の選択

大規模なデータセットを扱う場合、多くの場合、データベースからランダムな行を取得する必要があります。準備カウントを実行する必要はありません。 Laravel は、Eloquent インターフェイスと Fluent インターフェイスの両方を使用してこれを実現するためのいくつかのオプションを提供します。

Eloquent

Laravel 5.2 以降では、inRandomOrder() メソッドが提供されます。

User::inRandomOrder()->get();
ログイン後にコピー

このメソッドは、指定されたモデルからすべてのランダムな行のコレクションを返します。取得する行数を制限するには、limit() メソッドを使用します。

User::inRandomOrder()->limit(5)->get();
ログイン後にコピー

単一のランダムな行を取得するには、first() メソッドを使用します。

User::inRandomOrder()->first();
ログイン後にコピー

古いバージョンの場合Laravel (4.2.7 - 5.1) の場合は、orderByRaw() メソッドを使用できます:

User::orderByRaw("RAND()")->get();
ログイン後にコピー

Laravel バージョン 4.0 - 4.2.6 の場合、次を使用します:

User::orderBy(DB::raw('RAND()'))->get();
ログイン後にコピー

Fluent

5.2 より前のバージョンの Laravel では、order_by() メソッドが DB::raw() ヘルパー関数とともに使用されていました。

User::order_by(DB::raw('RAND()'))->get();
ログイン後にコピー

追加考慮事項

orderBy() メソッドでは現在、ASC または DESC 以外の引数を使用できないことに注意することが重要です。したがって、ランダムな行を選択するには、orderByRaw() メソッドまたは inRandomOrder() メソッドを使用する必要があります。

パフォーマンスに関する考慮事項

多数の行を取得する場合、パフォーマンスへの影響を考慮することが重要です。 inRandomOrder() メソッドを使用すると、ランダムな順序を生成するために追加のサブクエリが必要ないため、orderByRaw() メソッドを使用するよりも効率的になる可能性があります。

以上がEloquentとFluentを使用してLaravelでランダムな行を選択する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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