`
hudeyong926
  • 浏览: 2032917 次
  • 来自: 武汉
社区版块
存档分类
最新评论

Yii CDbCriteria常用用法

 
阅读更多
$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);
yii1版本打印最后一条执行的SQL
echo $this->getDbConnection()->createCommand()->select()->from()->order()->text;
yii2版本打印最后一条执行的SQL:
$query = InsuranceOnlineZaSuccess::find(); echo $query->createCommand()->getRawSql();
 Yii使用FIND_IN_SET
if ($this->city_ids) {
    $criteria->addCondition('FIND_IN_SET(:city_ids, city_ids)');
    $criteria->params[':city_ids'] = $this->city_ids;
}
 
分享到:
评论

相关推荐

    Yii CDBCriteria常用方法实例小结

    下面将结合具体示例,详细讲述Yii CDBCriteria类的一些常用方法以及如何使用它们。 首先,创建一个新的CDbCriteria实例很简单,只需要使用`new CDbCriteria();`即可开始构建查询。创建实例之后,可以通过多种方式...

    yii框架使用分页的方法分析

    Yii 提供了简单易用的分页机制,本文将详细介绍两种在 Yii 中实现分页的方法。 1. 在控制器(Controller)中实现分页: 在 Yii 中,分页通常在控制器中进行初始化和配置。以下展示了两种方法: **方法一:** ```...

    Yii实现简单分页的方法

    2. 使用CDbCriteria对象的applyLimit方法,将分页逻辑应用于数据查询中。这个方法会根据当前页码和每页数据量,生成一个符合分页需求的SQL查询限制条件。 3. 使用模型(Model)的findAll方法结合CDbCriteria对象来...

    Yii分页用法实例详解

    下面我总结了在Yii常用的一些yii分页方式与实例代码,这里有普通分页与ajax实现分页,希望此文章对大家会有所帮助。 第一种:CListView分页 针对对象形式的数据分页 Controller: 复制代码 代码如下:public function...

    Yii实现的多级联动下拉菜单

    3. 模型中如何定义和使用方法来获取和处理数据。 4. 如何使用Yii框架的CDbCriteria来构建数据库查询,并且利用CHtml::listData或CHtml::tag等工具来处理和输出数据。 5. 对于ajax请求的url选项的正确设置,以便...

    Yii列表定义与使用分页方法小结(3种方法)

    本文介绍了Yii框架中如何定义列表以及使用分页功能的三种方法。 首先,我们来了解如何在Yii中定义列表。在Yii中,列表通常是通过数据模型来定义的。数据模型通过继承自`CActiveRecord`类来实现对数据库表的封装,...

    Yii模型操作之criteria查找数据库的方法

    对于更复杂的需求,还可以利用`CDbCommand`类直接编写SQL语句,或者使用Yii2中的AR(Active Record)模式,通过模型方法直接操作数据库。 最后,对于学习Yii框架的开发者来说,了解并熟练掌握模型和`CDbCriteria`的...

    Yii基于数组和对象的Model查询技巧实例详解

    Yii框架中的Model查询是开发过程中常用的功能,它允许开发者高效地与数据库进行交互。本文将深入探讨基于数组和对象的Model查询技巧,特别是在处理Post模型时的四种主要查询方法。 首先,`find()`方法用于查找满足...

    asp.net 更改gridview pageSize的方法

    在ASP.NET中,GridView控件是用于展示数据的常用组件,尤其在Web应用程序中,它提供了灵活的数据绑定和用户交互功能。当数据量较大时,为了提高用户体验,通常会使用分页来显示数据。`PageSize`属性就是用来控制每一...

Global site tag (gtag.js) - Google Analytics