array('conditions' => array('Model.field' => $thisValue), //条件数组'recursive' => 1, //整型'fields' => array('Model.field1', 'DISTINCT Model.field2'), //字段名数组'order' => array('Model.created', 'Model.field3 DESC'), //定义顺序的字符串或者数组'group' => array('Model.field'), //进行GROUP BY的字段'limit' => n, //整型'page' => n, //整型'callbacks' => true //other possible values are false, 'before', 'after')
  • conditions(条件):条件(conditions)可应用于取代查询语句中的WHERE子句。默认值是1=1,这表示没条件约束。
  • fields(字段):查询结果应该返回的字段范围。如果没有指明,它会返回所有字段。当find()函数的第一个参数$type被设置成count时,该参数不可用。
  • order(排序):这个字符串定义了查询语句中ORDER BY子句的内容。如果order排序没有指明,那么SQL查询中将不会添加有ORDER BY子句。查询类型是count是,该参数也不可用。
  • limit(限制):该整数指明了返回记录的最大数量。如果没指定limit,那么函数会返回所有符合条件的记录。只有当查询类型是all时,它才可用。

$result = $this->User->find("all",array('id','username','password'));

$this->set("result",$result);

$result = $this->User->findByUsername("admin");

//打印时将只有username是admin的数据显示

$result = $this->User->find("all",array('conditions'=>array('username <>'=>'admin')));

此时打印时admin的那一条数据将不显示,其余都显示

为了便于读者更清楚地了解这个概念,我们将会快速浏览下面这些表明了find()用法的例子:

1,如果你想知道书名以字母“A”开头的书的数目,我们会在BooksController(Books控制器中)添加如下代码:

$count = $this->Book->find('count', array('conditions' =>  
            array('Book.title' => 'LIKE A%'));
It executes the following SQL query:

它会执行如下SQL查询

SELECT COUNT(*) AS `count` FROM `books` AS `Book` WHERE  
       `Book`.`title` LIKE 'A%';

当find()方法的$type参数设置成count时,查询返回的结果是一个整数。在这个例子中, $count变量的值可能是2.

2,如果我们想查询id最大书本所对应的书号(ISBN)和书名,我们会使用下面这个代码

$book = $this->Book->find('first',
                 array(
                         'fields' => array('isbn', 'title'),                  
                         'order' => 'Book.id DESC'
                       )
                             );

该代码会执行如下SQL语句

SELECT `Book`.`isbn`, `Book`.`title` FROM `books` AS `Book`
    WHERE 1 = 1 ORDER BY `Book`.`created` DESC LIMIT 1;

储存在$book变量中的结果会是下面这个样子:

Array
    (
        [Book] => Array
            (
                [isbn] => 1847192971
                [title] => Building Powerful and Robust Websites
                           with Drupal 6
            )
    )

3,如果你想找出某个作者所写的所得书并按照书名来排序,那么下面这个代码可以达到此目的:

$books = $this->Book->find('all',
                                  array(
                                    'fields' => array('title'),
                                    'conditions' => array(
                           'Book.author_name' => 'LIKE David Barnes'
                                    ),
                                    'order' => 'Book.title ASC'
                                  )
                 );

上面这段代码将会执行下面这个SQL查询

SELECT `Book`.`title` FROM `books` AS `Book` WHERE `Book`.`author_
            name` LIKE 'David Barnes' ORDER BY
    `Book`.`title` ASC

上面这段查询会返回如下的结果:

Array
    (
        [0] => Array
            (
                [Book] => Array
                    (
                        [title] => How to write computer books
                    )
            )
        [1] => Array
            (
                [Book] => Array
                    (
                        [title] => How not to write a technical book!

转载于:https://www.cnblogs.com/iplus/archive/2012/02/16/4490024.html

CakePHP查询数据相关推荐

  1. java查询mysql装载bean_jsp与javabean链接mysql数据库并查询数据表的简单实例源码

    jsp与javabean链接mysql数据库并查询数据表的简单实例源码.这个简单的实例是给新手学习的,或者一些高手临时忘记怎么使用jsp操作mysql数据库时候查找的,包括了建立mysql数据库连接的 ...

  2. JUnit测试类完成后事务是默认 回滚的。只能查询数据,不能增删改。

    JUnit测试类完成后事务是默认 回滚的.只能查询数据,不能增删改. 在测试类或者测试方法上面加上注解 @Rollback(false)  表示事物不回滚,这样数据就可以提交到数据库中了. 转载于:h ...

  3. Elasticsearch 查询数据的工作原理是什么?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:8rr.co/GsAa 面试题 ES 写入数据的工作原理是什 ...

  4. Statement接口实现查询数据、添加数据

    本文介绍了Statement接口实现查询数据.添加数据.在JDBC的基本应用中,介绍了使用Statement接口查询和添加数据的步骤.重点在于使用getConnection()方法来连接数据库,创建S ...

  5. mysql三表查询数据重复_解决mybatis三表连接查询数据重复的问题

    此问题的产生,主要是数据库的字段名一样导致 三张表 DOCTOR JOB OBJECT 有问题的查询语句和查询结果是: SELECT d.*,j.*,o.* from (select d.*,rown ...

  6. pandas 查询数据

    文章目录 视频 概论 使用行和列查询数据 行 列 单行.单列 单行多列 多行单列 多行多列 使用数值区间进行范围查询(左闭右闭和列表不一样) 条件表达式查询数据 调用函数查询数据 视频 https:/ ...

  7. pythonmysql查询转list_使用Python将Mysql的查询数据导出到文件的方法

    mysql官方提供了很多种connector,其中包括python的connector. 下载地址在:http://dev.mysql.com/downloads/connector/python/ ...

  8. PyCharm 2018 for mac 数据库实战:链接SQLite、建表、添加、查询数据

    一.前言 最近开始入门python,当然是要使用PyCharm,然后在项目中遇到.db数据库文件,双击打不开?网上找到了windows版本的教程,版本也比较旧,所以有空就来一发,当备忘也好~ 二.链接 ...

  9. java 实现违章_基于JAVA的车辆违章查询数据调用代码实例

    基于JAVA的车辆违章查询数据调用代码实例 代码描述:基于JA V A的车辆违章查询数据调用代码实例 相关平台:聚合数据 import java.io.BufferedReader; import j ...

  10. php 查看mysql连接数据库_php基础之连接mysql数据库和查询数据

    php基础之连接mysql数据库和查询数据 文章主要介绍了php连接mysql数据库和查询数据的方法和示例,需要的朋友可以参考下,就跟随百分网小编一起去了解下吧,想了解更多相关信息请持续关注我们应届毕 ...

最新文章

  1. iOS Core Data
  2. 模拟退火求函数最值问题求解
  3. c语言is stack empty,C语言实现栈的问题
  4. Android添加垂直滚动scrollview
  5. 纯虚函数能为private吗?
  6. 【实体对齐·HGCN】Jointly Learning Entity and Relation Representations for Entity Alignment
  7. Mac下安装Flink的local模式(flink-1.2.0)
  8. a标签使用方法和跳转方式
  9. Python面向对象06/反射/双下方法
  10. 物联网IoT应用技术有哪些?
  11. 十一届蓝桥模拟赛 元辅音字母 JAVA
  12. 微分方程的特征值解法:斯图姆-刘维尔方程
  13. 总结kali中文输入法失败的原因
  14. 转接IC整理汇总 转接芯片大全
  15. 解决虚拟机设置共享文件夹失败,/mnt目录为空
  16. 判断Android主题是否为深色主题
  17. yapi与rap2比较
  18. 汇编实验:格雷码转二进制(ASCII码)的实现和调试
  19. iOS CAReplicatorLayer 复制图层
  20. 2017第14届中国(西安)国际建筑节能及新型建材展览会会刊(参展商名录)

热门文章

  1. springBoot集成dubbo的超时时间设置
  2. 使用adb命令从Android手机中取出已安装的app包,导出apk
  3. Localdatetime的坑
  4. flask-mail异步发送邮件_Spring Boot与异步任务、定时任务、邮件任务
  5. 1.1介绍线程和运行(Introducing Thread and Runnable)
  6. [渝粤教育] 西南科技大学 试验统计方法 在线考试复习资料2021版
  7. 【渝粤教育】广东开放大学 普通话训练 形成性考核 (48)
  8. 机器学习工程师 - Udacity 强化学习 Part Eleven
  9. 【python】导入自定义模块
  10. JavaScript基础笔记(十四)最佳实践