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

ThinkPHP查询语言

一、普通查询在查询带入where条件等,最少有三种形式EQNEQ!GT>EGT>LT<</div>ELT<LIKElike[NOT]BETWEEN[not]between[not]in推荐使用数组...

一、普通查询

在查询带入where条件等,最少有三种形式

  1. EQ  = 
  2. NEQ != 
  3. GT  > 
  4. EGT >
  5. LT  <div> 
  6. ELT <
  7. LIKE  like 
  8. [NOT]BETWEEN  [not]between 
  9. [not]in 

推荐使用数组形式查询

1、字符串形式:

&#39;id>5 and id<9&#39;

2、数组形式

  1. $user=M(&#39;user&#39;); 
  2. $data[&#39;username&#39;]=&#39;liwenkai&#39;
  3. $list=$user->where(array(&#39;username&#39;=>&#39;liwenkai&#39;))->select(); 
  4. $list=$user->where($data)->select(); 
 

3、对象形式

  1. $user=M(&#39;user&#39;); 
  2. $a=new stdClass(); 
  3. $a->username=&#39;liwenkai&#39;
  4. $list=$user->where($a)->select();   

4、查询表达式

  1. EQ              等于 
  2.      NEQ             不等于 
  3.      GT              大于 
  4.      EGT             大于等于 
  5.      LT              小于 
  6.      ELT             小于等于 
  7.      LIKE            等价与sql中的like 
  8.      [NOT] BETWEEN   查询区间 
  9.      [NOT] IN        查询集合 
  10.      EXP             指使用标准SQL语句,实现更加复杂的情况 
  11.  
  12.      $data[&#39;字段名&#39;]=array(&#39;是表达式&#39;,&#39;查询条件&#39;); 
  13.      $data[&#39;liwenkai&#39;]=&#39;liwenkai&#39;;实际上是指$data[&#39;liwenkai&#39;]=array(&#39;eq&#39;,&#39;liwenkai&#39;); 
  14.      
  15.      $data[&#39;username&#39;]=array(&#39;like&#39;,&#39;peng%&#39;); 
  16.      $list=$user->where($data)->select(); 

二、区间查询

  1. $user=M(&#39;user&#39;); 
  2. $data[&#39;id&#39;]=array(array(&#39;gt&#39;,20),array(&#39;lt&#39;,23),&#39;and&#39;); 
  3. $list=$user->where($data)->select(); 
  4. dump($list); 
  5. $data[&#39;username&#39;]=array(array(&#39;like&#39;,&#39;p%&#39;),array(&#39;like&#39;,&#39;h%&#39;),&#39;or&#39;);  

三、组合查询

  1. $user=M(&#39;user&#39;); 
  2. $data[&#39;username&#39;]=&#39;pengyanjie&#39;
  3. $data[&#39;password&#39;]=array(&#39;eq&#39;,&#39;pengyanjie&#39;); 
  4. $data[&#39;id&#39;]=array(&#39;lt&#39;,30); 
  5. $data[&#39;_logic&#39;]=&#39;or&#39;
  6. $list=$user->where($data)->select(); 
  7. dump($list); 

四、复合查询

  1. $user=M(&#39;user&#39;); 
  2. $data[&#39;username&#39;]=array(&#39;eq&#39;,&#39;pengyanjie&#39;); 
  3. $data[&#39;password&#39;]=array(&#39;like&#39;,&#39;p%&#39;); 
  4. $data[&#39;_logic&#39;]=&#39;or&#39;
  5. $where[&#39;_complex&#39;]=$where
  6. $where[&#39;id&#39;]=array(&#39;lt&#39;,30); 
  7. $list=$user->where($data)->select(); 
  8. dump($list); 
  9. //相当于(id<30)and ( (username=pengyanjie) or (password like p%) ) 

五、统计查询

  1. echo $user->count(); 
  2. echo &#39;
    &#39;
  3. echo $user->max(&#39;id&#39;); 
  4. echo &#39;
    &#39;
  5. echo $user->where(&#39;id<30&#39;)->min(&#39;id&#39;); 
  6. echo &#39;
    &#39;
  7. echo $user->avg(&#39;id&#39;); 
  8. echo &#39;
    &#39;
  9. echo $user->sum(&#39;id&#39;); 

六、定位查询

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

七、SQL查询

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

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

query()主要用于查询

  1. $user=M(); 
  2. $list=$user->query(&#39;select * from aoli_user order by id desc&#39;); 
  3. dump($list); 

八、动态查询

  1. $user=M(&#39;user&#39;); 
  2. $list=$user->getByusername(&#39;pengyanjie&#39;); 
  3. $list=$user->getByusername(&#39;pengyanjie&#39;); 
  4. dump($list); 
  5.  
  6. $user=new AdvModel(&#39;user&#39;); 
  7. $list=$user->top5();//前5条 
  8. dump($list); 

推荐阅读
  • 解决phpMyAdmin运行错误:mysqli_init(): 属性访问尚未允许
    本文探讨了在使用phpMyAdmin过程中遇到的mysqli_init()函数错误,并提供了有效的解决方案。 ... [详细]
  • 本文探讨了如何在C#应用程序中有效处理来自两个不同数据库的数据,特别是当需要从一个数据库中选择不在另一个大型集合中的ID时遇到的挑战和解决方案。 ... [详细]
  • 探讨了在Express应用中,如何实现同一路由下既返回HTML文件又发送JSON数据的技术挑战与解决方案。 ... [详细]
  • 随着科技的进步,AR智能眼镜正逐渐成为日常生活的一部分。今年冬天,一款仅重38克的AR智能眼镜成为了市场上的焦点,其超轻设计和创新功能值得我们深入了解。 ... [详细]
  • 本文对唐代诗人李贺的《奉和二兄罢使遣马归延州》进行了详细的翻译与赏析,深入解析了诗中的情感表达与艺术特色。 ... [详细]
  • 基于函数实现的进制转换工具
    本文介绍了一种利用函数实现不同进制数(二进制、八进制、十进制)之间转换的方法。包括了程序的运行效果展示、所使用的主要函数解析、以及如何验证用户输入的合法性。整个项目仅使用了两个全局变量来存储用户的选项和输入的数值。 ... [详细]
  • ArcGIS技巧:为相邻地块创建指定宽度的隔离带
    在地理信息系统(GIS)的数据处理中,为了满足特定项目的质量检查标准,需要在相邻地块之间创建一定宽度的隔离带。本文将探讨如何使用ArcGIS工具解决这一问题,确保不同地块图斑间保持规定的最小距离。 ... [详细]
  • Pro*C访问Oracle数据库的例子test.pc$cattest.pc#includeEXECSQLINCLUDESQLCA;EXECSQLBEGINDECLARESECTIO ... [详细]
  • 深度兴趣网络在点击率预测中的应用研究
    本文探讨了一种名为深度兴趣网络(Deep Interest Network, DIN)的新方法,该方法通过捕捉用户的历史行为和当前上下文之间的交互来提高点击率预测的准确性。DIN模型不仅考虑了用户的静态偏好,还动态地调整了对不同商品的兴趣权重,从而实现了更加个性化的推荐。 ... [详细]
  • 本文探讨了一个项目中遇到的挑战,即如何通过技术手段解决不同菜单项触发时,跨域IFrame页面的高度自适应问题。通过创建中介页面和利用JavaScript与Cookie机制,实现无缝的用户体验。 ... [详细]
  • 在 PHP 4, PHP 5 和 PHP 7 中,fstat 函数用于获取已打开文件指针的文件统计信息。此函数与 stat() 类似,但其操作对象为已打开的文件指针而非文件名称。 ... [详细]
  • 本文探讨了在PHP中处理特定类型编码字符串的方法,特别是如何将HTML实体编码的字符串转换为普通文本。 ... [详细]
  • Java 动态代理详解与示例
    本文详细介绍了Java中的动态代理机制,包括如何定义接口、实现类和代理处理器,并通过具体示例演示了动态代理的创建和使用过程。 ... [详细]
  • LeetCode 6057: 计算与子树平均值相等的节点数量——深度优先搜索
    本题要求在给定的二叉树中找到所有符合条件的节点数量,即节点的值等于其所有后代节点(包括自身)值的平均值。这里的平均值是通过将所有后代节点值之和除以后代节点的数量,并向下取整得到。 ... [详细]
  • CSGO
    CSGOTimeLimit:40002000MS(JavaOthers)MemoryLimit:524288524288K(JavaOthers)ProblemDescriptio ... [详细]
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社区 版权所有