TP6 条件查询 sql判断条件 when

112 篇文章 7 订阅
85 篇文章 4 订阅

官网教程:高级查询 · ThinkPHP6.0完全开发手册 · 看云

条件查询

查询构造器支持条件查询,例如:

$condition=条件

Db::name('user')->when($condition, function ($query) {
    // 满足条件后执行
    $query->where('score', '>', 80)->limit(10);
})->select();

并且支持不满足条件的分支查询

Db::name('user')->when($condition, function ($query) {
    // 满足条件后执行
    $query->where('score', '>', 80)->limit(10);
}, function ($query) {
    // 不满足条件执行
    $query->where('score', '>', 60);
});

 例子:

Db::name('user')->when($sex==1 && $type=1 && !empyt($score)  , function ($query) {
    // 满足条件后执行
    $query->where('score', '>', 80)->limit(10);
})
->field('id,type,score,sex')
->select();

例子:带外面参数进来判断条件use($params){

            $rsu = Db::name('order')
                ->alias('o')
                ->leftjoin('user u', 'u.id=o.user_id')
                ->when(!empty($params['state']),function($query)use($params){
                    if($params['state'] == '3'){//3=等清分
                        $query->whereExp('ohe.state',Db::raw('IS NULL'));
                    }else if($params['state']== '10'){
                        $query->where('ohe.state',0);
                    }else{
                        $query->where('ohe.state',$params['state']);
                    }
                })
                ->select();
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值