ホームページ  >  記事  >  PHPフレームワーク  >  laravelでのDB::rawの使用法は何ですか?

laravelでのDB::rawの使用法は何ですか?

WBOY
WBOYオリジナル
2022-02-18 11:17:275151ブラウズ

laravel では、複雑な SQL クエリに "DB::raw()" メソッドが使用されます。このメソッドは、クエリされた結果セットを一時テーブルとして扱い、ページング処理に laravel のクエリビルダー構文を使用できます。構文は「DB::raw('関数またはフィールド');」です。

laravelでのDB::rawの使用法は何ですか?

#この記事の動作環境: Windows 10 システム、Laravel バージョン 6、Dell G3 コンピューター。

laravel での DB::raw の使用法は何ですか。

プロジェクトで問題が発生しました。複雑な SQL クエリです。laravel のクエリ コンストラクターを使用するのは非常に不便です。さまざまなクエリの長​​いリストを結合します。条件を考えると頭が痛くなります。ネイティブ SQL ステートメントを使用してクエリを実行したいのですが、laravel の paginate() ページング メソッドは使用できません。このような場合に DB::raw() メソッドが役に立ちます。構文の原則は、クエリの結果セットを一時テーブルとして扱い、ページング処理に laravel のクエリ ビルダー構文を使用することです;

例 1:

$users = DB::table('users')
                   ->select(DB::raw('count(*) as user_count, status'))
                   ->where(&#39;status&#39;, &#39;<>&#39;, 1)
                   ->groupBy(&#39;status&#39;)
                   ->get();

例 2:

 DB::table(&#39;someTable&#39;)
->selectRaw(&#39;count(*), min(some_field) as someMin, max(another_field) as someMax&#39;)
->get();

例 3:

DB::table(&#39;someTable&#39;)->select(
array(
        DB::raw(&#39;min(some_field) as someMin&#39;),
        DB::raw(&#39;max(another_field) as someMax&#39;),
        DB::raw(&#39;COUNT(*) as `count`&#39;)
    )
)->get()

例 4:

SELECT 
  (CASE WHEN (gender = 1) THEN &#39;M&#39; ELSE &#39;F&#39; END) AS gender_text 
  FROM users;
$users = DB::table(&#39;users&#39;)
  ->select(DB::raw("
  name,
  surname,  
  (CASE WHEN (gender = 1) THEN &#39;M&#39; ELSE &#39;F&#39; END) as gender_text")
);

[関連する推奨事項: laravel ビデオ チュートリアル]

以上がlaravelでのDB::rawの使用法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。