select id from hoge where status=1 and created>'2012-12-12' order by id limit 5;
のようなandだけのSQLを発行したい場合は、
$criteria = new CDbCriteria; $criteria->select='id'; $criteria->order='id'; $criteria->limit=5; $criteria->compare('status','1'); $criteria->compare('created','>2012-12-12'); $datas=$this->findAll($criteria);
のようにします。
select id from hoge where status=1 or created>'2012-12-12' order by id limit 5;
のようなorだけのSQLを発行したい場合は、
$criteria = new CDbCriteria; $criteria->select='id'; $criteria->order='id'; $criteria->limit=5; $criteria->compare('status','1',false,'OR'); $criteria->compare('created','>2012-12-12',false,'OR'); $datas=$this->findAll($criteria);
のようにします。
select id from hoge where (name like 'fugo%' or email='fugo@hoge.com') and status=1 and created>'2012-12-12' order by id limit 5;
のようなandとorが混在するSQLを発行したい場合は、
$criteria = new CDbCriteria; $criteria->select='id'; $criteria->order='id'; $criteria->limit=5; $criteria->compare('name','fugo',true,'OR'); $criteria->compare('email','fugo@hoge.com',false,'OR'); $criteria2 = new CDbCriteria; $criteria2->compare('status','1'); $criteria2->compare('created','>2012-12-12'); $criteria->mergeWith($criteria2); $datas=$this->findAll($criteria);
のようにします。
CDbCriteriaの詳しい説明はこちらにあります。
1件のコメント
コメントは受け付けていません。