上一篇文章讲解“数据库查询构造器-时间查询”,本篇文章讲解“数据库查询构造器-高级查询一”。
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连载为卓象程序员原创,转载请联系卓象程序员
关注卓象程序员,定期发布技术文章
下一篇讲解“查询构造器-高级查询二”
领取专属 10元无门槛券
私享最新 技术干货