Home > php教程 > php手册 > ThinkPHP中的查询技巧总结

ThinkPHP中的查询技巧总结

WBOY
Release: 2016-06-13 09:36:30
Original
875 people have browsed it

最近刚刚开始学习 thinkphp 这套框架,对于Thinkphp的强大真的是让哥叹为观止,其抗压能力,性能如何这个暂不讨论,下面就分享一下 thinkphp 强大的查询功能,当然这里只是抛砖引玉而已。

一、带where条件的普通查询
  
1、字符串形式

$user=M('user');
$list=$user->where('id>5 and idselect();
$list=$user->where($data)->select();

2、数组形式

$user=M('user');
$list=$user->where(array('username'=>'www.phpernote.com'))->select();
$list=$user->where($data)->select();

3、对象形式

$user=M('user');
$a=new stdClass();
$a->username='www.phpernote.com';
$list=$user->where($a)->select();   

4、查询表达式

EQ              等于
NEQ             不等于
GT              大于
EGT             大于等于
LT              小于
ELT             小于等于
LIKE            等价与sql中的like
[NOT] BETWEEN   查询区间
[NOT] IN        查询集合
EXP             指使用标准SQL语句,实现更加复杂的情况

语法格式:$data['字段名']=array('是表达式','查询条件');

例如

$data['username']='www.phpernote.com';

实际上是指

$data['username']=array('eq','www.phpernote.com');

$data['username']=array('like','peng%');
$list=$user->where($data)->select();

$data['username']=array(array('like','p%'),array('like','h%'),'or');
$list=$user->where($data)->select();

二、区间查询

$user=M('user');
$data['id']=array(array('gt',20),array('lt',23),'and');
$list=$user->where($data)->select();

三、组合查询

$user=M('user');
$data['username']='pengyanjie';
$data['password']=array('eq','pengyanjie');
$data['id']=array('lt',30);
$data['_logic']='or';
$list=$user->where($data)->select();
dump($list);

四、复合查询

$user=M('user');
$data['username']=array('eq','pengyanjie');
$data['password']=array('like','p%');
$data['_logic']='or';
$where['_complex']=$where;
$where['id']=array('lt',30);
$list=$user->where($data)->select();

相当于

(id

五、统计查询

echo $user->count();
echo '
';
echo $user->max('id');
echo '
';
echo $user->where('idmin('id');
echo '
';
echo $user->avg('id');
echo '
';
echo $user->sum('id');

六、定位查询

$user=new AdvModel('user');//实例化高级模型AdvModel
//$user=M('user','CommonModel');//或者将AdvModel用CommonModel来继承
$list=$user->order('id desc')->getN(2);//返回结果中的第三条
$list=$user->order('id desc')->last();//返回最后一条
$list=$user->order('id desc')->first();//返回第一条

七、SQL查询

excute()主要用于更新和写入

$Model=new Model()  //  实例化一个 model 对象,没有对应任何数据表
$Model->execute("update think_user set name='thinkPHP' where status=1");

query()主要用于查询    

$user=M();
$list=$user->query('select * from aoli_user order by id desc');
dump($list);           

八、动态查询

$user=M('user');
$list=$user->getByusername('pengyanjie');
$list=$user->getByusername('pengyanjie');

$user=new AdvModel('user');
$list=$user->top5();//前5条

您可能感兴趣的文章

  • thinkphp模板中判断volist循环的最后一条记录
  • thinkphp开发技巧总结
  • php中的MVC模式运用技巧
  • thinkphp like 查询
  • thinkphp 的 Action 控制器中的系统常量总结
  • thinkphp截取中文字符串的方法
  • thinkphp自动验证与自动填充无效的解决办法
  • 使用ThinkPHP必须掌握的调试方法
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template