01 thinkphp6的前期开发准备《ThinkPHP6 入门到电商实战》
02 控制器《ThinkPHP6 入门到电商实战》
03 数据库查询、模型查询、多库查询《ThinkPHP6 入门到电商实战》
04 tp6 的查数据《ThinkPHP6 入门到电商实战》
05 tp6 的数据添加《ThinkPHP6 入门到电商实战》
06 tp6 的数据更新(改)及删除 《ThinkPHP6 入门到电商实战》
07查询表达式 及 page分页、order 排序《ThinkPHP6 入门到电商实战》
08 获取器 withAttr、多连缀、whereRaw、事务、数据集《ThinkPHP6 入门到电商实战》
若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我,若你是真心学习可以送你书籍,指导你学习,给予你目标方向的学习路线,无套路,博客为证。
查询表达式是指在查询中使用表达式,进行更灵活的查询,以下是官方手册中的表达式:
在此列出较为常用的查询表达式,其他表达式自行查看手册即可。
以下是官方手册示例,使用等于表达式对某个值进行查询:
Db::name('user')->where('id','=',100)->select();
若查询 student 表中身高等于 170 的同学那么代码写成:
public function select(){
$res=Db::name('student')->where('height','=',170)->select();
dump($res);
}
结果如下:
以上查询方法与以下代码等效:
Db::name('user')->where('id',100)->select();
若想查询不包括 170 身高的同学就可以写成如下代码:
$res=Db::name('student')->where('height','<>',170)->select();
结果为:
between 表示某个值在什么和什么之间,例如:
$res=Db::name('student')->where('id','between','1,5')->select();
以上代码表示 id 在 1至5 之间,那么得到的数据如下:
也可以使用 whereBetween 进行查询,两者等效:
$res=Db::name('student')->whereBetween('id','1,5')->select();
同样也可以使用 not between 表示非区间内查询:
$res=Db::name('student')->whereNotBetween('id','1,5')->select();
结果如下:
使用 in 进行查询则是表示某个值在指定的范围之中,这个范围是给定的,而不是自动的一个区间:
$res=Db::name('student')->where('id','in','1,5,8')->select();
以上代码表示 id 为 1、5、8 均满足查询条件,那么此时的数据为:
当然也可以使用 notin 和 wherein:
Db::name('student')->whereIn('id','in','1,5,8')->select();
Db::name('student')->whereNotIn('id','in','1,5,8')->select();
在以往的分页中我们可能使用较多的是 limit 操作,当然在这里也可以使用 limit 操作,但是使用 page 更加的“舒服”,例如如下示例:
public function select(){
$res=Db::name('student')->page(1, 3)->select();
dump($res);
}
使用 page 就表示每页 3 调数据,1则表示第一页,此时只需要更改1这个数字就可以表示不同“页”的数据了,结果如下:
使用 order 可使数据通过某个值按照不同的方式进行排列,例如:
Db::name('student')->page(1, 3)->order('id', 'desc')->select();
以上代码表示查询所有数据的前3个,但是排序是id desc 降序排序,那么结果就是: