讲师中心 微信公众号
AI工具推荐 视频效率加速

ThinkPHP5数据库实例详解

浏览21090
更新时间2022-01-20

区间查询

1、功能:针对同一字段,进行多个查询条件设置

这个区间查询与between类似,但功能更加强大,基本含义是:该字段即要满足A条件,又要满足B条件;

2、 基本(常用)语法:

逻辑关系是可选的,如不写,默认为逻辑与:AND

Db::table('表名') -> field('字段列表') -> where('字段名',表达式数组,['逻辑关系']) ->select();

3、实例演示:

任务1:查询tp5_staff表中工资大于9000,小于10000的员工信息,工资好高呀~~

  • Index.php  控制器代码:
<?php
namespace app\index\controller;

//导入数据库类
use think\Db;

class Index {
  public function index(){   
   $result = Db::table('tp5_staff')     //设置数据表
          -> field(['id'=>'编号','name'=>'姓名','salary'=>'工资'])  //设置字段别名
          -> where('salary',['>',9000],['<', 10000],'and')  //查询条件
          // -> where('salary','between',[9000,10000])  等价语句
          ->select();    //获取结果集

  //输出结果集
  dump($result);
  }
}
  • 结果如下:
array(4) {
  [0] => array(3) {
    ["编号"] => int(1008)
    ["姓名"] => string(6) "宋江"
    ["工资"] => float(9261)
  }
  [1] => array(3) {
    ["编号"] => int(1023)
    ["姓名"] => string(9) "段王爷"
    ["工资"] => float(9560)
  }
  [2] => array(3) {
    ["编号"] => int(1011)
    ["姓名"] => string(9) "李云龙"
    ["工资"] => float(9850)
  }
  [3] => array(3) {
    ["编号"] => int(1028)
    ["姓名"] => string(6) "方方"
    ["工资"] => float(9877)
  }
}
  • 生成的SQL语句:
SELECT `id` AS `编号`,`name` AS `姓名`,`salary` AS `工资` FROM `tp5_staff` WHERE ( `salary` > 9000 and `salary` < 10000 )
  • 等价语句生成的SQL语句:
SELECT `id` AS `编号`,`name` AS `姓名`,`salary` AS `工资` FROM `tp5_staff` WHERE `salary` BETWEEN 9000 AND 10000

4、总结:

区间查询,只是提供了除between之外的另一种解决方案。

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn