$criteria = new CDbCriteria;
//select
$criteria->select = '*';//默认*
$criteria->select = 'id,name';//指定的字段
$criteria->select = 't.*,t.id,t.name';//连接查询时,第一个表as t,所以用t.*
$criteria->distinct = FALSE; //是否唯一查询 //join
$criteria->join = 'left join table2 t2 on(t.id=t2.tid)'; //连接表
$criteria->with = 'xxx'; //调用relations //where 查询数字字段
$criteria->addCondition("id=1"); //查询条件,即where id = 1
$criteria->addBetweenCondition('id', 1, 4);//between 1 and 4
$criteria->addInCondition('id', array(1,2,3,4,5)); //代表where id IN (1,23,,4,5,);
$criteria->addNotInCondition('id', array(1,2,3,4,5));//与上面正好相法,是NOT IN //where 查询字符串字段
$criteria->addSearchCondition('name', '分类');//搜索条件,其实代表了。。where name like '%分类%' //where 查询日期字段
$criteria->addCondition("create_time>'2012-11-29 00:00:00'");
$criteria->addCondition("create_time<'2012-11-30 00:00:00'"); //where and or
$criteria->addCondition('id=1','OR');//这是OR条件,多个条件的时候,该条件是OR而非AND //这个方法比较特殊,他会根据你的参数自动处理成addCondition或者addInCondition,
//即如果第二个参数是数组就会调用addInCondition $criteria->compare('id', 1);
/** * 传递参数 */ $criteria->addCondition("id = :id");
$criteria->params[':id']=1; //order
$criteria->order = 'xxx DESC,XXX ASC' ;//排序条件 //group
$criteria->group = 'group 条件';
$criteria->having = 'having 条件 '; //limit
$criteria->limit = 10; //取1条数据,如果小于0,则不作处理
$criteria->offset = 1; //两条合并起来,则表示 limit 10 offset 1,或者代表了。limit 1,10
Yii的Active Recorder包装了很多。

特别是把SQL中 把where,order,limit,IN/not IN,like等常用短句都包含进CDbCriteria这个类中去,这样整个代码会比较规范,一目了然。

   $criteria =newCDbCriteria; 

   $criteria->addCondition("id=1"); //查询条件,即where id =1
$criteria->addInCondition('id', array(1,2,3,4,5));//代表where id IN (1,23,,4,5,);
$criteria->addNotInCondition('id',array(1,2,3,4,5));//与上面正好相法,是NOT IN
$criteria->addCondition('id=1','OR');//这是OR条件,多个条件的时候,该条件是OR而非AND
$criteria->addSearchCondition('name','分类');//搜索条件,其实代表了。。where name like '%分类%'
$criteria->addBetweenCondition('id', 1, 4);//between1 and 4 $criteria->compare('id',1); //这个方法比较特殊,他会根据你的参数自动处理成addCondition或者addInCondition,
//即如果第二个参数是数组就会调用addInCondition $criteria->addCondition("id = :id");
$criteria->params[':id']=1; $criteria->select = 'id,parentid,name';//代表了要查询的字段,默认select='*';
$criteria->join = 'xxx'; //连接表
$criteria->with = 'xxx';//调用relations
$criteria->limit =10; //取1条数据,如果小于0,则不作处理
$criteria->offset =1; //两条合并起来,则表示 limit 10 offset1,或者代表了。limit 1,10
$criteria->order = 'xxx DESC,XXX ASC' ;//排序条件
$criteria->group = 'group 条件';
$criteria->having = 'having 条件 ';
$criteria->distinct = FALSE;//是否唯一查询
CDbCriteria 公共属性:

CDbCriteria.alias    string    类型 表别名.
CDbCriteria.condition string 类型 查询条件
CDbCriteria.distinct boolean 类型 是否只选择不相同的数据行
CDbCriteria.group string 类型 如何进行分组查询结果
CDbCriteria.having string 类型 作为GROUP-BY子句的条件
CDbCriteria.index string 类型 作为查询结果数组的索引
CDbCriteria.join string 类型 如何加入其它的表
CDbCriteria.limit integer 类型 要返回最大记录值
CDbCriteria.offset integer 类型 要返回从0开始的偏移量
CDbCriteria.order string 类型 如何对结果进行排序
CDbCriteria.paramCount integer 类型 绑定域名的全局记数器
CDbCriteria.param array 类型 以参数占位符为索引的查询参数列表
CDbCriteria.scopes mixed 类型 定义多个查询条件,进行组合
CDbCriteria.select mixed 类型 被选中的列
CDbCriteria.with mixed 类型 相关联的查询标准 CDbCriteria.addBetweenCondition() 添加一个between条件到条件属性中
CDbCriteria.addColumnCondition() 附加一个相匹配的列值的条件
CDbCriteria.addCondition() 附加一个条件到已存在的条件中

Yii CDbCriteria类中方法的更多相关文章

  1. Java学习笔记(七)——获取类中方法的信息,java的LinkedList

    [前面的话] 在实际项目中学习知识总是最快和最有效的,既能够较好的掌握知识,又能够做出点东西,还是简单的知识总结,最近一直在总结笔记,写的东西还是比较水,希望慢慢可以写出一些干货. 学习过程中的小知识 ...

  2. Spring service本类中方法互相调用事物失效问题

    简介 Spring事物利用的是AOP,动态代理采用CGLIB代理(默认,也可以用Proxy代理,但是Proxy代理效率低于CGLIB代理).故只要弄懂Spring的AOP实现,就知道为什么servic ...

  3. yii CDbCriteria 类的总结

    在编程中,我们通常会需要查询些东西,但是通过查询的时候,yii有个集成的类--- CDbCriteria():通过该类,我们可以更加便捷的调用数据. 参考网址:http://www.cnblogs.c ...

  4. 对Object类中方法的深入理解

    看一下API中关于Object的介绍: 类 Object 是类层次结构的根类.每个类都使用 Object 作为超类.所有对象(包括数组)都实现这个类的方法. 那么Object中到底有哪些方法,各自有什 ...

  5. C#实现调用Java类中方法

    基本思路: 用C#实现调用Java编写的类中的方法:重点是将Java编写的程序打包成Jar,然后使用开源工具IKVM将其转化成DLL控件,在.NET环境下调用. 分为以下步骤: 1.下载JDK6(注: ...

  6. android开发中关于继承activity类中方法的调用

    android开发中关于继承activity类中的函数,不能在其他类中调用其方法. MainActivity.java package com.example.testmain; import and ...

  7. Object类中方法详解

    目录 概述 hashCode方法 getClass方法 toString方法 equals方法 clone方法 finalize方法 概述 Object 是类层次结构的根类.每个类都使用 Object ...

  8. objec类中方法介绍

    java.lang.object,是Java中所有类(当然Object类除外)的终极父类,其中数组也继承了Object类,但是接口是不继承Object类的. Object中方法如下(11个): Cla ...

  9. C# 如何利用反射,将字符串转化为类名并调用类中方法

    首先,先随便创建一个测试类 <span style="font-family:Microsoft YaHei;font-size:18px;">public class ...

随机推荐

  1. Linux内核优化项

    net.ipv4.ip_forward = #该文件内容为0,表示禁止数据包转发,1表示允许 net.ipv4.conf.default.rp_filter = #是否忽略arp请求 net.ipv4 ...

  2. CentOS 7 源码安装Ansible 2.x

    1.安装Python 3.x环境 [root@ansible ~]# yum install -y python36 python36-pip git [root@ansible ~]# ln -s ...

  3. 因为swap分区无法启动

    用户启动时停在如下截图

  4. Google推荐——Glide使用详解(图片加载框架)

    零.前言 本文所使用的Glide版本为3.7.0 一.简介 Glide,一个被google所推荐的图片加载库,作者是bumptech.这个库被广泛运用在google的开源项目中,包括2014年的goo ...

  5. mysql 程序编写实例

    DELIMITER $$ drop trigger if exists `updata_depart_lead_name`;-- 新建触发器 ---- 功能:在更新部门的领导编号是,自动填写部门领导名 ...

  6. activity启动模式之singleInstance

    activity启动模式之singleInstance 一.简介 Log.d("C2", getTaskId()+"");里面的getTaskId()可以获取a ...

  7. 计蒜客button 概率

    中文题意不多说,这题主要是数据太大,无法递推,所以用欧拉常数来解决 对于调和级数1/1+1/2+...+1/n=ln(n)+C+1/(2*n),C为欧拉常数,再加上ceil向上取整就可以了 #incl ...

  8. Xcode删除无用的Symbols信息

    open ~/Library/Developer/Xcode/iOS\ DeviceSupport 进入后对不需要的版本手动Delete.

  9. require.js资料

    1.http://www.ruanyifeng.com/blog/2012/11/require_js.html?bsh_bid=230697246 (require.js的用法) 2.http:// ...

  10. 《The Cg Tutorial》阅读笔记——环境贴图 Environment Mapping

    本文为大便一箩筐的原创内容,转载请注明出处,谢谢:http://www.cnblogs.com/dbylk/p/4969956.html 环境贴图 Environment Mapping 一.简介 环 ...