thinkphp8提升之查询
随着前端技术的发展,页面功能纷繁复杂,再加上功能需求的不断迭代,所以对数据查询的方式要求也就越来越多。那么thinkphp8有什么查询方式呢?
- 字符串拼接
再where中将多个条件以字符串的形式拼接再一起进行查询,这种方式的优点是熟悉mysql的人员可以不用考虑thinkphp的语法,能够快速拼接
$user = db('user')->where('username="user" and type=0')->select();
二.多where查询
Where(字段,”条件”,值)的形式查询,这种少量的条件还是可以的,如果多了,那么代码中就全是where了
$user = db('user')->where("username","user")->where('type',"=",0)->select();
三.一维数组参数查询
Where条件里面是一个数组,局限也很明显,只能是键值对的形式
$user = db('user')->where(["username"=>"user",'type'=>0])->select();
四.二维数组的查询
可以使用like、大于、小于等条件进行查询
$where = [['username','like','%u%'],['type','<',1]];
$user = db('user')->where($where)->select();
五.Whereor的用法
1)、直接的whereor就等同于where(不推荐)
$user = db('user')->whereor('type',0)->select();
等同于
$user = db('user')->where('type',0)->select();
2)、一个where、一/多个whereor,查询条件一个成立就可以了
$user = db('user')->where('username','admin')->whereor('type',0)->select();
3)、多个where、多个whereor(不推荐)
就等同于多个where的条件同时成立再与whereor的条件取或者。
即(where1 and where2 and where3...)or whereor1 or whereor1
$user = db('user')->where('username','admin')->whereor('type',0)->where('id','>',9)->select();
六.Wherelike 、wherebetween、wherein、whereNull、whereTime等快捷查询
//模糊查询
$user = db('user')->whereLike('username','%a%')->select();
//两者直接最小值+逗号+最大值
$user = db('user')->wherebetween('type','1,2')->select();
//再什么里面多个值用逗号分割
$user = db('user')->wherein('type','0,1,2')->select();
//查询字段是null
$user = db('user')->wherenull('username')->select();
//时间查询,时间戳、日期等
$user = db('user')->wheretime('type','>',0)->select();
七.原生查询
使用think\facade\Db;Db::query(‘sql条件’)
Db::query('select * from tp_user');