首頁 >php框架 >Laravel >laravel中DB::raw的用法是什麼

laravel中DB::raw的用法是什麼

WBOY
WBOY原創
2022-02-18 11:17:275246瀏覽

在laravel中,「DB::raw()」方法用於複雜的sql查詢,該方法能夠將查詢到的結果集當成一個臨時表,然後使用laravel的查詢建構器語法進行分頁處理,語法為“DB::raw('函數或字段');”。

laravel中DB::raw的用法是什麼

本文操作環境:Windows10系統、Laravel6版、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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn