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

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('status',?'',?1) ???????????????????->groupBy('status') ???????????????????->get();

例2:

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

例3:

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

例4:

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

【相關推薦:laravel視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊8 分享