thinkphp 查询条件组合实例ThinkPHP教程

/ / 2016-10-25   阅读:2561
 查询表达式  $map['字段名']=array('表达式','查询条件');     表达式有 eq等于 ,neq不等于,  gt大于, lt小于 ,egt/elt 大于等于/小于等于            ...
 查询表达式  $map['字段名']=array('表达式','查询条件');
    表达式有 eq等于 ,neq不等于,  gt大于, lt小于 ,egt/elt 大于等于/小于等于
           like 类似     $map['name']=array('like','thinkphp%')
           [not]between [不在]在什么之间     $map['id']=array('between','1,8')
           [not]in [不属于]属于什么集合之一   $map['id']=array('in','1,2,4')
           exp后面支持更复杂的sql表达式       $map['id']=array('exp','in(1,2,4)')

 组合查询表达式,需要设置_logic
          $map['id']=array('eq',1);
          $map['name']='ok';
          $map['_logic']='or';
          $user->where($map)->select()
     还可以使用_string来设置条件
          $map['_string']='status=1 and score>13';

 复合查询,多个数组或对象组合成条件
           $where['name']=array('like','thinkphp%');
           $where['title']=array('like','%thinkphp%');
           $where['_logic']='or';
           $map['_complex']=$where;
           $map['id']=array('gt',1)

 统计查询
    使用thinkphp内置的一些方法
          $usercount=$user->count()   //获取用户数
          $usercount=$user->max('score')   //获取最大积分
          $usercount=$user->where('score>0')->min('score')   //获取大于0的最小积分
          $usercount=$user->avg('score')     //获取用户的平均分
          $usercount=$user->sum('score')   //获取用户总成绩

 定位查询
      需要继承高级模型类才可以使用
        class UserModel extends AdvModel
          $user->where('score>1')->getN(2)  //取的查询结果中的第三条记录
                                                   first();     //获取第一条记录
                                                   last();      //获取最后一条记录

 sql查询
      可以使用query方法执行sql查询语句,返回数据集
      可以使用excute()方法执行插入,更新等sql操作,返回影响记录数
      __TABLE__ 可以使用在sql语句中代替当前模型对应的表名

我要评论

昵称:
验证码:

最新评论

共0条 共0页 10条/页 首页 上一页 下一页 尾页
意见反馈