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件のコメント
コメントは受け付けていません。