thinkphp 查询条件组合

2015-04-10 15:44:00

查询表达式  $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语句中代替当前模型对应的表名

点赞

发表回复

电子邮件地址不会被公开。必填项已用 * 标注