laravel中的一些查询构造器

308篇laravel中我不知道的查询构造器
一、你还可以传递条件数组到 where 函数中:

$users = DB::table('users')->where([
    ['status', '=', '1'],
    ['subscribed', '<>', '1'],
])->get();

二、orwhere

$users = DB::table('users')
            ->where('votes', '>', 100)
            ->orWhere(function($query) {
                $query->where('name', 'Abigail')
                      ->where('votes', '>', 50);
            })
            ->get();

// SQL语句: select * from users where votes > 100 or (name = 'Abigail' and votes > 50)

三、whereColumn 方法用于比较两个字段的值是否相等:

whereColumn 方法用于比较两个字段的值是否相等:
$users = DB::table('users')
                ->whereColumn('first_name', 'last_name')
                ->get();
                
你也可以传入一个比较运算符:
$users = DB::table('users')
                ->whereColumn('updated_at', '>', 'created_at')
                ->get();   
                             
你也可以给 whereColumn 传递一个数组,他们之间会使用 and 运算符连接:
$users = DB::table('users')
                ->whereColumn([
                    ['first_name', '=', 'last_name'],
                    ['updated_at', '>', 'created_at'],
                ])->get();            

四、Where Exists 语句

$users = DB::table('users')
           ->whereExists(function ($query) {
               $query->select(DB::raw(1))
                     ->from('orders')
                     ->whereRaw('orders.user_id = users.id');
           })
           ->get();
产生sql如下:           
select * from users
where exists (
    select 1 from orders where orders.user_id = users.id
)           

五、latest 和 oldest 方法让你以一种便捷的方式通过日期进行排序。它们默认使用 created_at 列作为排序依据。当然,你也可以传递自定义的列名:

$user = DB::table('users')
                ->latest()
                ->first();

六、条件语句
在这里插入图片描述
七、使用游标
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值