常见的查询:
select() 查询所有的数据,连贯操作最后
find() 查询一条数据 find(5) 表示id=5的查询
findAll() 其实是等同于select()
查询的过程中还有一些辅助查询的方法
where() 在查询中增加条件 他的参数可以是字符串,也可以是数组,也可以是对象
字符串:where('id=4') 数组:Where($arr) $arr['name']='aaa' where(obj) $user->username='aaa'
order() 查询中进行排序 ,参数可以是字符串,也可以使数组
limit() 限制查询,从我们的查询结果中取出一部分纪录,limit(3) 取3条 limit('4,8') 从第5条取8条
limit('offset,length')
field() 取出要查询字段 field('name,sex,qx')
getByXXX 动态查询数据,XXX表示字段名称
getField() 专门获取某个字段或者是多个字段如果是多个字段的时候返回的是一个数组 索引数组
getField('uid,name,sex') 查询多个字段 把uid作为返回数组的索引值
区间查询
普通的sql 字段>10 <10 字段>10 and 字段<30 字段 between 10 and 30
在ThinkPHP中也支持区间查询
在Where 中我们使用一个多为数组实现区间查询,这个数组如何定义?
$condition['id']=array(array('比较运算符','值'),array('eq','1'),array('like','__优快云%'),....,还可以有个逻辑运算符例如:and or 默认的是and)
区间查询的时候,条件数组的最后一个元素还可以是'and' 'or' 'xor' 默认的是and
统计查询:
->count() 统计所有的记录数 ,count('字段') ,统计非空’字段‘
->min() min('字段') 返回该字段的最小值
->max() max('字段') 返回字段的最大值
->avg() avg('字段') 返回该字段的平均值
->sum () sum('字段') 返回字段相加的和
定位查询
注意,我们使用定位查询的时候,必须要使用ThinkPHP的“高级模型”
自定义高级模型的方法:
class UserModel extends AdvModel{}
如果说我们不想自定义模型,目前使用的是基本模型,但是又想使用高级模型的方法
切换模型$user->switchModel(‘Adv’) 基础模型转化为高级模型的方法
定位查询的方法:
->first() 从查询结果获取第一条数据
-> last() 从查询结果中获取最后数据
->getN(num) 查询第num个数据 下表从0开始
执行原生的sql查询:
原生的sql查询可以更方便、更灵活的查询,解决ThinkPHP封装不到为的地方
query($sql) 反回的是一个结果集
excute($sql) 返回执行sql影响的行数