• 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
    如果此文章对您有所帮助记得打赏哦,一分也是对我的支持和鼓励,谢谢!
    转载文章请务必保留出处和署名,谢谢!
  • 相关阅读:
    windows下前端开发工具遇到的问题总结(yeoman bower grunt)
    gurnt js css 压缩合并
    PyCharm中的Console调整字体大小
    PyCharm中的Console自动换行
    requests模块demo
    http状态码
    查找入职员工时间排名倒数第三的员工所有信息
    查找最晚入职员工的所有信息
    xrange与range之间的区别
    给出每个员工每年薪水涨幅超过5000的员工编号emp_no、薪水变更开始日期from_date以及薪水涨幅值salary_growth,并按照salary_growth逆序排列。
  • 原文地址:https://www.cnblogs.com/shx1024/p/11931240.html
Copyright © 2020-2023  润新知