CDbCriteria 詳細便用說明

CDbCriteria
代表一個標準的查詢, 如條件,order by和limit.
它是一個數據封裝對象,相當於SQL語句的各部分的載體


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的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;//是否唯一查詢



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章