美文网首页
Laravel详解DB::raw() 用法 --- 2021-1

Laravel详解DB::raw() 用法 --- 2021-1

作者: 一位先生_ | 来源:发表于2021-12-17 09:42 被阅读0次

在项目中遇到一个问题,复杂的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详解DB::raw() 用法 --- 2021-1

      本文链接:https://www.haomeiwen.com/subject/ydtifrtx.html