07查询表达式 及 page分页、order 排序《ThinkPHP6 入门到电商实战》

举报
1_bit 发表于 2022/08/06 23:55:07 2022/08/06
【摘要】 文章目录(更新中…) 01 thinkphp6的前期开发准备《ThinkPHP6 入门到电商实战》 02 控制器《ThinkPHP6 入门到电商实战》 03 数据库查询、模型查询、多库查询《ThinkP...

文章目录(更新中…)

01 thinkphp6的前期开发准备《ThinkPHP6 入门到电商实战》
02 控制器《ThinkPHP6 入门到电商实战》
03 数据库查询、模型查询、多库查询《ThinkPHP6 入门到电商实战》
04 tp6 的查数据《ThinkPHP6 入门到电商实战》
05 tp6 的数据添加《ThinkPHP6 入门到电商实战》
06 tp6 的数据更新(改)及删除 《ThinkPHP6 入门到电商实战》
07查询表达式 及 page分页、order 排序《ThinkPHP6 入门到电商实战》
08 获取器 withAttr、多连缀、whereRaw、事务、数据集《ThinkPHP6 入门到电商实战》

若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我,若你是真心学习可以送你书籍,指导你学习,给予你目标方向的学习路线,无套路,博客为证。

一、查询表达式

查询表达式是指在查询中使用表达式,进行更灵活的查询,以下是官方手册中的表达式:
在这里插入图片描述
在此列出较为常用的查询表达式,其他表达式自行查看手册即可。

1.1= 表达式

以下是官方手册示例,使用等于表达式对某个值进行查询:

Db::name('user')->where('id','=',100)->select();

  
 
  • 1

若查询 student 表中身高等于 170 的同学那么代码写成:

public function select(){
   $res=Db::name('student')->where('height','=',170)->select();
   dump($res);
}

  
 
  • 1
  • 2
  • 3
  • 4

结果如下:
在这里插入图片描述
以上查询方法与以下代码等效:

Db::name('user')->where('id',100)->select();

  
 
  • 1

1.2 不等于 <>

若想查询不包括 170 身高的同学就可以写成如下代码:

$res=Db::name('student')->where('height','<>',170)->select();

  
 
  • 1

结果为:
在这里插入图片描述

1.3 区间查询 between 、whereIn、whereNotIn

between 表示某个值在什么和什么之间,例如:

$res=Db::name('student')->where('id','between','1,5')->select();

  
 
  • 1

以上代码表示 id 在 1至5 之间,那么得到的数据如下:
在这里插入图片描述
也可以使用 whereBetween 进行查询,两者等效:

$res=Db::name('student')->whereBetween('id','1,5')->select();

  
 
  • 1

同样也可以使用 not between 表示非区间内查询:

$res=Db::name('student')->whereNotBetween('id','1,5')->select();

  
 
  • 1

结果如下:
在这里插入图片描述
使用 in 进行查询则是表示某个值在指定的范围之中,这个范围是给定的,而不是自动的一个区间:

$res=Db::name('student')->where('id','in','1,5,8')->select();

  
 
  • 1

以上代码表示 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();

  
 
  • 1
  • 2

二、page 分页查询

在以往的分页中我们可能使用较多的是 limit 操作,当然在这里也可以使用 limit 操作,但是使用 page 更加的“舒服”,例如如下示例:

public function select(){
    $res=Db::name('student')->page(1, 3)->select();
    dump($res);
}

  
 
  • 1
  • 2
  • 3
  • 4

使用 page 就表示每页 3 调数据,1则表示第一页,此时只需要更改1这个数字就可以表示不同“页”的数据了,结果如下:
在这里插入图片描述

三、order 排序

使用 order 可使数据通过某个值按照不同的方式进行排列,例如:

Db::name('student')->page(1, 3)->order('id', 'desc')->select();

  
 
  • 1

以上代码表示查询所有数据的前3个,但是排序是id desc 降序排序,那么结果就是:
在这里插入图片描述

文章来源: i1bit.blog.csdn.net,作者:1_bit,版权归原作者所有,如需转载,请联系作者。

原文链接:i1bit.blog.csdn.net/article/details/126184706

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。