区间查询

区间查询

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

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

2、 基本(常用)语法:

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

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

3、实例演示:

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

  • Index.php 控制器代码:
 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之外的另一种解决方案。