zoukankan      html  css  js  c++  java
  • TP---where多条件查询

    TP的多条件查询功能是非常强大的。
    先上句代码热热身:

    Db::name('stu')->where(['name'=>'张三','sex'=>'男'])->select();
    

    这就是一个简单的多条件查询
    当然大家都知道,这种只是最简单的“=”的形式,要是查询类似于id大于3、姓张的人、年龄在18到30岁之间、位置在山东浙江北京其中一个……该怎么办?
    下面就为大家解答,为了节约时间我把所有例子放到一个代码中。

    Db::name('stu')->
    where([
    	'id'=>['>','3'],
    	'name'=>['like','张%'],
    	'age'=>['between',['18','30']],
    	'position'=>['in',['山东','浙江','北京']]
    ])->select();
    

    着急用的朋友上面的代码就应该足够了,下面我们详细介绍下具体where用法和其他技巧。
    首先我个人并不喜欢直接在where条件中写一大串,一般都是先存在变量中,最后放进语句中执行。

    $where['id']=['>','3'];
    $where['name']=['like','张%'];
    $where['age']=['between',['18','30']];
    //上面这句还可以这么写
    //$where['age']=['between','18,30'];
    $where['position']=['in',['山东','浙江','北京']];
    //同样in也可以换个写法
    //$where['position']=['in','山东,浙江,北京'];
    Db::name('stu')->where($where)->select();
    

    这种写法有一定的好处,首先就是代码清晰明了,其次就是方便查找错误;
    而且还可以根据是否需要来增加条件(类似于搜索效果):
    图片

    $where[1]=[1];
    if($sex){
    	//根据有无sex来添加条件,当有sex传来时,查询固定sex,没有时查询所有信息
    	$where['sex']=['=',$sex];
    }
    

    这时候可能就有人问了,我想用not查询怎么办,非常简单:

    $where['name']=['not like','张%'];
    

    以上这些都是以and连接的查询条件,那么如果想用or该怎么办呢?
    举个例子相信大家就都明白了:

    $where['id'] = [['<',3],['>',10],'or'];
    

    放个大招!
    当你实在不知道where条件怎么写,走投无路时,还有更直接方法,直接在where中写sql条件,例如:

    Db::name('stu')->where("sex='男' and age='女' or age<18")->select();
    //当然,and也可以换成or
    
    博客园:https://www.cnblogs.com/huixincode
    如果此文章对您有所帮助记得打赏哦,一分也是对我的支持和鼓励,谢谢!
    转载文章请务必保留出处和署名,谢谢!
  • 相关阅读:
    day14_集合框架1(ArrayList,LinkedList,HashSet)
    day13_String、StringBuffer、StringBuilder
    初识Java_day01
    关于局部内部类访问带有final修饰符的局部变量
    day03,day04_数组,循环(上)
    day09(下)_异常(上)
    day08_多态
    day11_多线程(多线程安全问题)
    day16_集合框架3(HashMap,TreeMap)
    day09(上)_内部类
  • 原文地址:https://www.cnblogs.com/shx1024/p/11931240.html
Copyright © 2011-2022 走看看