ホームページ > バックエンド開発 > PHPチュートリアル > EloquentまたはFluentを使用してLaravelでランダムな行を取得する方法?

EloquentまたはFluentを使用してLaravelでランダムな行を取得する方法?

Patricia Arquette
リリース: 2024-11-11 22:36:03
オリジナル
349 人が閲覧しました

How to Retrieve a Random Row in Laravel Using Eloquent or Fluent?

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

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