为什么80%的码农都做不了架构师?>>>   

Yii CDbCriteria 常用方法

注:$c = new CDbCriteria();是ActiveRecord的一种写法,使ActiveRecord更加灵活,而不是手册中DAO(PDO)和Query Builder。

这是Yii CDbCriteria的一些笔记和常用用法:

一、一个sql拼装的情况

$criteria = new CDbCriteria;

$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);//between 1 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 offset 1,或者代表了。limit 1,10

$criteria->order = 'xxx DESC,XXX ASC' ;//排序条件

$criteria->group = 'group 条件';

$criteria->having = 'having 条件 ';

$criteria->distinct = FALSE; //是否唯一查询

实例:

Php代码  

$criteria = new CDbCriteria();

$criteria->select = 'table_name,model_id,sum(amount) total';

$criteria->group = 'table_name,model_id';

$criteria->addCondition("$nIdcId=4");//也可以$criteria->condition = "$nIdcId=4";

$aResult = accessory_info::model()->findAll($criteria);

$c = new CDbCriteria();

$c->select = 't.id, t.created_at, t.outsource_id, t.user_id, t.operate, t.content';

$c->join = 'LEFT JOIN outsource ON outsource.id=t.outsource_id';

$c->condition = 'outsource.idc_id IN(' . implode(',', $idc_ids)  . ')';

if($last_log_id) {

$c->condition .= " AND t.id > $last_log_id";

}

$c->limit = 20;

$c->order = 't.id DESC';

$logs = OutsourceProcessLog::model()->findAll($c);

批注: 
1,与DAO方式结果区别是:DAO方式  数组中的每一个元素仍是数组。而通过CDbCriteria方式,数组中的元素是对象。 
2,即使该功能很强大,仍有一些需求不能满足,此时仍需sql语句。比如select avg(num) amount from ****。

二、mergeWith的情况

//在ActiveRecord中,增加条件限制

$this->getDbCriteria()->mergeWith(array(

'condition'=>"idc_id IN ($ids)",

));

转载于:https://my.oschina.net/neo600/blog/165816

Yii CDbCriteria 常用方法相关推荐

  1. Yii CDBCriteria常用方法

    Yii CDbCriteria 常用方法 注:$c = new CDbCriteria();是ActiveRecord的一种写法,使ActiveRecord更加灵活,而不是手册中DAO(PDO)和Qu ...

  2. YII CDbCriteria 的一些常用方法记录

    $criteria = new CDbCriteria; $criteria->addCondition("id=1"); //查询条件,即where id = 1 $cri ...

  3. Yii Criteria

    Yii Criteria常用方法(select,join,where,日期,) $criteria = new CDbCriteria; //select $criteria->select = ...

  4. html制作统计期末成绩,JS-结合html综合练习js的对象——班级成绩表制作

    对象综合练习 body { font: 14px "微软雅黑"; } span { padding: 5px; } table { margin: 0 auto; border: ...

  5. yii mysql数据库操作_Yii2数据库操作常用方法小结

    本文实例讲述了Yii2数据库操作常用方法.分享给大家供大家参考,具体如下: 查询: // find the customers whose primary key value is 10 $custo ...

  6. 【Yii框架系列一】Yii中CDbCriteria常用总结

    2019独角兽企业重金招聘Python工程师标准>>> Yii中CDbCriteria常用总结 Yii的Active Recorder包装了很多. 特别是把SQL中 把where,o ...

  7. Yii 中Criteria常用方法

    $criteria = new CDbCriteria; //select $criteria->select = '*';//默认* $criteria->select = 'id,na ...

  8. Yii CGridView 基本使用(三)关联表相关字段搜索

    加入 关联表 相关字段的搜索: 先说一句,我们在这里仅仅谈 "一对多" 的关联搜索,首先,不要忘了我们的数据库,忘记的同学请戳这里:这里.能够看到在 tbl_post 中是有一个外 ...

  9. Yii AR Model CRUD数据库操作

    Yii AR很好很强大,但刚开始不知道怎么使用,可以先看下官方文档官方文档:http://www.yiichina.com/guide/database.ar 下面是我对AR的一些理解对于一个Mode ...

最新文章

  1. IOS工作笔记(五)
  2. Linux中OBS在Wayland环境下黑屏只显示鼠标的应对措施
  3. GetResponse() 基础连接已经关闭:服务器关闭了本应保持活动状态的连接
  4. 葡萄城报表V11 SP2新版本震撼发布!
  5. 暑期训练日志----2018.8.24
  6. 收藏 | EfficientNet模型的完整细节
  7. Yocto tips (10): Yocto hellworld 加入一个软件包
  8. 不知道不 OK!53 个 Python 经典面试题详解
  9. stm32中的延时函数
  10. linux从哪里入侵电脑,linux入侵的基本命令网站安全 -电脑资料
  11. 视频编码格式转换软件:compressor for mac中文版
  12. 【rmzt】美女之目露凶光win7主题
  13. java 手机推荐_Java一样也智能 中低端手机上网助手推荐
  14. 和华明诚:提高店铺关注的操作方法
  15. 有得必有失,你该把技术做多细?
  16. 我们真的需要会议耳机吗?
  17. “ 这片绿茵从不缺乏天才,努力才是最终的入场券——梅西 ”
  18. win7一直显示正在关机_win7系统一直卡在正在关机无法关机怎么解决
  19. Thread.currentThread().getName()
  20. 多元统计分析最短距离法_(完整word版)多元统计分析模拟试题

热门文章

  1. 一个关于CentOS下apache配置修改生效的问题
  2. Subversion For Windows的安装与使用
  3. 计算机网络共享是什么意思,网络共享与便携式热点是什么意思
  4. win10计算机无法启动mfc7450,解决联想M7650,7600,M7450,7400驱动WIN10系统下不能用固件...
  5. mysql 减少文件排序_消除更新查询中的mysql文件排序
  6. Xamarin图表开发基础教程(13)OxyPlot框架支持的其它图表
  7. XamarinAndroid组件教程RecylerView适配器使用动画
  8. Xamarin XAML语言教程模板视图TemplatedView(一)
  9. python 加速循环的执行_python循环怎么用多线程去运行
  10. python os模块是什么_python常见模块之os模块