在laravel中,“DB::raw()”方法用于復雜的sql查詢,該方法能夠將查詢到的結果集當成一個臨時表,然后使用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
喜歡就支持一下吧
相關推薦