腾讯云618限量抢购
  1. PHP基础教程
  2. PHP+MySQL数据库教程

ThinkPHP 区间查询

最后更新:2011-03-18 14:33阅读:33431

区间查询

ThinkPHP 支持对某个字段的区间查询。

例子1:

public function read(){
    $Dao = M('User');
    $condition['uid'] = array(array('gt',1),array('lt',5));
    $list = $Dao->where($condition)->select();
    if($list){
        $this->assign('list', $list);
        $this->display();
    } else {
        $this->error($Dao->getError());
    }
}

上例中,构造的查询条件:

$condition['uid'] = array(array('gt',1),array('lt',5));

得到的实际查询条件为:

(uid > 1) AND (uid < 5)

上例实际执行的 SQL 语句为:

SELECT * FROM user WHERE ( (uid > 1) AND (uid < 5) ) 

区间查询条件中,支持各种普通查询中的一个或多个表达式,关于表达式具体可见《ThinkPHP 表达式》相关内容。对于多个表达式,逻辑上可以是 AND、OR 或者 XOR,如果忽略,默认为 AND。

例子2,使用 OR 逻辑:

$condition['uid'] = array(array('gt',3),array('lt',10), 'or');

得到的实际查询条件为:

(uid < 1) OR (uid > 10)
例子3,使用其他表达式:

$condition['username'] = array(array('like','%a%'), array('like','%b%'), 'Admin','or'); 

得到的实际查询条件为:

(username LIKE '%a%') OR (username LIKE '%b%') OR (username = 'Admin')

参考阅读

  1. ThinkPHP Where 条件
  2. ThinkPHP 表达式

本章节内容共分 8 部分:
  1. 1. ThinkPHP 查询数据 select(findAll) 方法
  2. 2. ThinkPHP find方法 查询一条数据记录
  3. 3. ThinkPHP getBy动态查询
  4. 4. ThinkPHP getField 方法获取某个字段的值或多个字段的索引数组
  5. 5. ThinkPHP 区间查询
  6. 6. ThinkPHP 统计查询
  7. 7. ThinkPHP 定位查询
  8. 8. ThinkPHP 原生SQL查询
腾讯云618限量抢购