热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ThinkPHP之查询语言

ThinkPHP中的查询语言:普遍查询1)字符串形式$list$user->where('usernamebbbb')->select();2)数组形式$data['username']...

ThinkPHP中的查询语言:

普遍查询

1)字符串形式

$list=$user->where('username=bbbb')->select();

2)数组形式

  1. $data['username']='bbbbb'
  2. $list=$user->where($data)->select(); 

3)对象形式

  1. $user=M('user'); 
  2. $a=new stdClass(); 
  3. $a->username='bbbbb'
  4. $list=$user->where($a)->select(); 

查询表达式

EQ (=)

NEQ(!=)

GT (>) LT(<)  [NOT]BETWEEN(对应sql中的between) IN

EGT(>=)ELT(<=)LIKE (对应sql中的like)

EXP(使用标准sql语句实现较复杂的情况)

区间查询

  1. $map[&#39;id&#39;] = array(array(&#39;gt&#39;,3),array(&#39;lt&#39;,10), &#39;or&#39;) ; 
  2. $map[&#39;name&#39;]  = array(array(&#39;like&#39;,&#39;%a%&#39;), array(&#39;like&#39;,&#39;%b%&#39;), array(&#39;like&#39;,&#39;%c%&#39;), &#39;ThinkPHP&#39;,&#39;or&#39;); 

对应的查询条件是:(`name` LIKE &#39;%a%&#39;) OR (`name` LIKE &#39;%b%&#39;) OR (`name` LIKE &#39;%c%&#39;) OR (`name` = &#39;ThinkPHP&#39;);

组合查询:

1)字符串模式查询(_string)

  1. $user=M(&#39;User&#39;); 
  2.  $data[id]=array(&#39;neq&#39;,1); 
  3.  $data[&#39;username&#39;]=&#39;aaaaa&#39;
  4.  $data[&#39;_string&#39;]=&#39;userpass=123 and createtime=2012&#39;
  5.  $list=$user->where($data)->select(); 

2)请求字符串查询方式

  1. $data[&#39;id&#39;]=array(&#39;gt&#39;,100); 
  2. $data[&#39;_query&#39;]=&#39;userpass=1&username=aa&_logic=or&#39;
  3. $list=$user->where($data)->select(); 

3)复合查询

  1. $wh[&#39;username&#39;]=array(&#39;like&#39;,&#39;%thinkphp%&#39;); 
  2. $wh[&#39;userpass&#39;]=array(&#39;like&#39;,&#39;3%&#39;); 
  3. $wh[&#39;_logic&#39;]=&#39;or&#39;
  4. $data[&#39;_complex&#39;]=$wh
  5. $data[&#39;id&#39;]=array(&#39;gt&#39;,100); 
  6. $list=$user->where($data)->select(); 

对应于:(id>100)AND( (namelike&#39;%thinkphp%&#39;)OR(titlelike&#39;%thinkphp%&#39;) )

统计查询

  1. count():$num=$user->count();$num=$user->count(&#39;id&#39;); 
  2. max(): 
  3. min(): 
  4. avg(): 
  5. sum(): 

定位查询

要求当前模型必须继承高级模型类才能使用

  1. $User->where(&#39;score>0&#39;)->order(&#39;score desc&#39;)->getN(2); 
  2. $User-> where(&#39;score>80&#39;)->order(&#39;score desc&#39;)->getN(-2); 
  3. $User->where(&#39;score>80&#39;)->order(&#39;score desc&#39;)->first(); 
  4. $User->where(&#39;score>80&#39;)->order(&#39;score desc&#39;)->last(); 

SQL查询

  1. $model=new Model(); 
  2. $list=$model->query("select * from think_user where id>1 and id<10"); 
  3. $model=new Model(); 
  4. $Model->execute("update think_user set name=&#39;thinkPHP&#39; where status=1"); 

动态查询

  1. $user = $User->getByName(&#39;liu21st&#39;); 
  2. $user = $User->getFieldByName(&#39;liu21st&#39;,&#39;id&#39;); 
  3. $user-> where(&#39;score>80&#39;)->order(&#39;score desc&#39;)->top5(); 

推荐阅读
author-avatar
下个路口见的
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有