关键词搜索

源码搜索 ×
×

TP6 条件查询 sql判断条件 when

发布2021-11-24浏览1860次

详情内容

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

条件查询

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

$condition=条件

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

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

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

 例子:

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

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

  1. $rsu = Db::name('order')
  2. ->alias('o')
  3. ->leftjoin('user u', 'u.id=o.user_id')
  4. ->when(!empty($params['state']),function($query)use($params){
  5. if($params['state'] == '3'){//3=等清分
  6. $query->whereExp('ohe.state',Db::raw('IS NULL'));
  7. }else if($params['state']== '10'){
  8. $query->where('ohe.state',0);
  9. }else{
  10. $query->where('ohe.state',$params['state']);
  11. }
  12. })
  13. ->select();

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载