Yii CDbCriteria常用用法

本文介绍了在Yii框架中如何利用CDbCriteria类进行高效的数据库查询操作,包括条件筛选、排序、分组等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

$criteria = new CDbCriteria;
$criteria->compare('name',$this->name,true,'OR'); //like部分匹配
//$criteria->addCondition("id=1"); //查询条件,即where id = 1
//$criteria->addInCondition('id', array(1,2,3,4,5)); //代表where id IN (1,2,3,4,5);
$criteria->compare('name', array(1,2,3,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->compare("id","<>1"); //not like
$criteria->addBetweenCondition('id', 1, 4);//between 1 and 4
$criteria->compare('id', 1); //这个方法比较特殊,他会根据你的参数自动处理成addCondition或者addInCondition,
$criteria->compare("id","<1"); //这个方法他会根据你提供的条件进行判断
//即如果第二个参数是数组就会调用addInCondition
推荐compare,搜索条件允许为空因此不需要加条件
$criteria = new CDbCriteria;
$criteria->alias = 't';  //table t,默认select='*';
//一些public vars 
$criteria->select = 'id,parentid,name'; //代表了要查询的字段,默认select='*';  
$criteria->join = 'xxx'; //连接表  
$criteria->with = 'xxx'; //调用relations   $criteria->with = array('accounts','varchar');
$criteria->limit = $page_size;    
//$criteria->offset = ($page-1)*$page_size;
$criteria->order = 'xxx DESC,XXX ASC' ;//排序条件  
$criteria->group = 'group 条件';  
$criteria->having = 'having 条件 ';  
$criteria->distinct = FALSE; //是否唯一查询
Article::model()->findAll($criteria);
DAO
$sql ='  ...  yiiblog_desc like :keywords or yiiblog_title like :keywords ... ';
$TmpStatement = Yii::app()->db->createCommand($sql);
$TmpStatement->bindValue(':keywords', '%'.$keywords.'%');
findAll('username like :username ' ,array(":username"=>"%$key%"));

小于11

Member::model()->findByAttributes(array(), "id<:id", array(':id'=>11))

sum

//public $total = 0; //model attribute
$criteria = $this->getCDbCriteria();
$criteria->select = 'SUM(t.amount) AS total';
return self::model()->find($criteria)['total'];

取列表
 

$list = Activity::model()->findAllByPk([20,11]);
该方法是根据一个条件查询查询得到的数组有没有数据,如果有数据返回一个true,否则没有找到
$bool_result = Post::model()->exists($condition,$params);
Yii使用FIND_IN_SET
if ($this->city_ids) {
    $criteria->addCondition('FIND_IN_SET(:city_ids, city_ids)');
    $criteria->params[':city_ids'] = $this->city_ids;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值