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

Patricia Arquette
リリース: 2024-11-16 12:31:03
オリジナル
408 人が閲覧しました

How to Retrieve Random Rows in Laravel Using Eloquent or Fluent?

Laravel で Eloquent または Fluent を使用してランダムな行を選択する

データベース テーブルからランダムな行を取得することは、Web アプリケーションの一般的なタスクです。 Laravel では、Eloquent または Fluent クエリ ビルダーを使用してこのタスクを実行するためのいくつかの方法が提供されています。

Eloquent の使用 (Laravel >= 5.2)

Laravel 5.2 以降、フレームワークはランダムな行を取得する便利な方法を提供する inRandomOrder() メソッドが導入されました。次のコードは、その使用方法を示しています。

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

特定の数のランダム レコードを取得するには、limit() メソッドを使用します。

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

あるいは、ランダム メソッドを使用することもできます。 () 単一のランダム レコードを取得するためにコレクションによって提供されるメソッド:

$randomUser = User::all()->random();
ログイン後にコピー

Fluent の使用(Laravel

5.2 より前のバージョンの Laravel では、Fluent の orderByRaw() メソッドを使用して結果をランダムに並べることができます。

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

使用Fluent を使用した SQL

を使用したい場合純粋な SQL を使用する場合は、Fluent ステートメントに次のクエリを記述できます。

$randomUsers = DB::table('users')->orderByRaw('RAND()')->get();
ログイン後にコピー

このアプローチでは、最初のクエリの前にレコード数をカウントする必要があることに注意してください。これは、大規模なデータセットの場合は非効率的になる可能性があります。

結論

Laravel でランダムな行を選択するには、次のいずれかを使用します。雄弁または流暢。 Eloquent の inRandomOrder() メソッドは、Laravel 5.2 以降でこれを行うための最も効率的かつ簡単な方法を提供します。古いバージョンの場合、Fluent の orderByRaw() メソッドは実行可能な代替手段を提供しますが、いくつかの制限があります。

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

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