thinkphp5数据库查询构造器高级查询一

上一篇文章讲解“数据库查询构造器-时间查询”,本篇文章讲解“数据库查询构造器-高级查询一”。1.快捷查询快捷查询方式是一种多字段相同查询条件的简化写法,可以进一步简化查询条件的写法,在多个字段之间用|分割表示OR查询,用&分割表示AND查询,可以实现下面的查询。新建Index控制器,并新建fastFun方法:

预览:

注意:1.快捷查询支持所有的查询表达式。2.区间查询区间查询是一种同一字段多个查询条件的简化写法。在Index控制器中,新建secFun方法:

预览:

注意:1.区间查询的查询条件必须使用数组定义方式,支持所有的查询表达式。区间查询其实可以用下面的方式替代,更容易理解,因为查询构造器支持对同一个字段多次调用查询条件。修改Index控制器下的secFun方法:

预览:

3.批量(字段)查询可以进行多个条件的批量条件查询定义。1)基本使用在Index控制器中,新建batchFun方法:

预览:

注意:1.注意,V5.1.7+版本数组方式如果使用exp查询的话,一定要用raw方法。2)使用exp查询,用raw方法修改Index控制器下的batchFun方法:

预览:

注意:1.注意,相同的字段的多次查询条件可能会合并,如果希望某一个where方法里面的条件单独处理,可以使用下面的方式,避免被其它条件影响。3)查询条件单独处理一个数组查询条件修改Index控制器下的batchFun方法:

预览:

多个数组查询条件修改Index控制器下的batchFun方法:

预览:

注意:1.善用多维数组查询,可以很方便的拼装出各种复杂的SQL语句。2.where方法中加了“[]”,组成新数组的形式,不加也没问题。4.闭包查询在Index控制器中,新建closureFun方法:

预览:

注意:1.可见每个闭包条件两边也会自动加上括号,但需要注意,使用闭包查询的时候不能使用cache(true)数据缓存,而应该使用指定key的方式例如cache('key')。2.如果不需要向闭包查询中传入变量,可以省略use。5.混合查询可以结合前面提到的所有方式进行混合查询。在Index控制器中,新建mixFun方法:

预览:

6.字符串条件查询对于一些实在复杂的查询,也可以直接使用原生SQL语句进行查询。1)基本使用在Index控制器中,新建strFun方法:

预览:

2)对字符串查询条件使用参数绑定为了安全起见,我们可以对字符串查询条件使用参数绑定。修改Index控制器下的strFun方法:

预览:

ThinkPHP5连载为卓象程序员原创,转载请联系卓象程序员关注卓象程序员,定期发布技术文章下一篇讲解“查询构造器-高级查询二”

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20181001A0LIJ500?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券