日期:2014-05-17  浏览次数:20387 次

ThinkPHP学习笔记(九)Thinkphp中的查询方式大综合
<?php
/**
 * 普通查询
 * 	1.字符串形式
 * 	2.数组形式(推荐形式)
 * 		$user=M('user');
 * 		$data['username']='user';
 * 		$list=$user->where($data)->select();
 * 	3.对象形式
 * 		$user=M('user');
 * 		$condition=new stdClass();
 * 		$condition->username='user';
 * 		$list=$user->where($condition)->select();
 * 判断条件:(太多)查询表达式:5.3.
 *		eq(相等)、ne(不相等)、neq(不相等)、gt(大于)、lt(小于)、elt(小于等于)、
 *		le(小于等于)、gte(大于等于)、ge(大于等于)、
 *		like
 *		[not] between
 *		[not] in
 *		exp 执行标准sql语句
 * 区间查询
 * 组合查询
 * 复合查询
 * 统计查询
 * 定位查询
 * sql查询
 * 动态查询
 *
 */
class SelectAction extends Action{
	public function index(){
   		$user=M('user');
//		//1.1数组查询(可以使用查询表达式来设置获取范围)
//		//DB_LIKE_FIELDS=>'username,password';(自动进行模糊匹配)
//   		$data['username']=array('like','us%');
//   		$data['id']=array('between','0,10');
//   		$data['id']=array('not between',array('5','10'));
//   		$data['id']=array('in','5,8,10');
//   		$list=$user->where($data)->select();
//		$date['id']=array('exp','in(0,2,3,7)');
//		$date['createtime']=array('exp','createtime+1');
//   		$list=$user->where(array('id'=>1))->save($date);
//   		dump($list);
//   		//1.2对象形式
//   		$user=M('user');
//   		$condition=new stdClass();
//   		$condition->username='user';
//   		$list=$user->where($condition)->select();
//   		dump($list);

 		//2区间查询
//		$data['id']=array(array('gt',3),array('lt',10));
//		$data['id']=array(array('gt',3),array('lt',10),'or');
//		$data['id']=array(array('gt',3),array('lt',10),'and');
//		$data['username']=array(array('like','u%'),array('like','a%'),'or');
//   		$list=$user->where($data)->select();
//   		dump($list);

   		//3.组合查询
//   		$data['username']='user';
//   		$data['id']='8';
//   		$data['_logic']='or';//条件为or
//   		$data['_string']='id<5';//就是在sql后面加入标准的sql条件
//   		$list=$user->where($data)->select();
//   		dump($list);

   		//4.复合查询(id<5 and (username=''or createtim=''))
//   		$data['username']=array('eq','user');
//   		$data['createtime']=array('eq','0');
//   		$data['_logic']='or';//条件为or
//   		$where['_complex']=$data;
//   		$where['id']=array('lt',2);
//   		$list=$user->where($where)->select();
//   		dump($list);

   		//5.统计查询count\max\min\avg\sum
//   		$list=$user->where('id>5')->count('id');
//   		dump($list);
//   		$list=$user->max('createtime');
//   		dump($list);
//   		$list=$user->min('createtime');
//   		dump($list);
//   		$list=$user->avg('createtime');
//   		dump($list);
//   		$list=$user->sum('createtime');
//   		dump($list);

   		//6.定位查询getN();first();last();
//   		//6.1初始化
////   		$user=new AdvModel('user');
//		//6.1.2或者new一个ComModel继承AdvModel
//   		$user=new AdvModel('user');
//   		//直接返回结果当中的某条记录从0开始
//   		$list=$user->getN(0);
//   		dump($list);

   		//7.sql查询execute(更新和写入;有受影响行数无结果集)、query(用于查询)
//   		$list=$user->query('from tb_user order by id desc');
//   		dump($list);

   		//8.动态查询(方法后加上字段名getByUsername或者查询top)
   		$user=new AdvModel('user');
//   		$list=$user->getByUsername('user');
   		$list=$user->top3();
   		dump($list);
	}
}
?>