0
点赞
收藏
分享

微信扫一扫

TP6 条件查询 sql判断条件 when


官网教程:​​高级查询 · 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();

举报

相关推荐

0 条评论