Yii CDbCriteria 常用方法
为什么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; //是否唯一查询
实例:
$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 常用方法相关推荐
- Yii CDBCriteria常用方法
Yii CDbCriteria 常用方法 注:$c = new CDbCriteria();是ActiveRecord的一种写法,使ActiveRecord更加灵活,而不是手册中DAO(PDO)和Qu ...
- YII CDbCriteria 的一些常用方法记录
$criteria = new CDbCriteria; $criteria->addCondition("id=1"); //查询条件,即where id = 1 $cri ...
- Yii Criteria
Yii Criteria常用方法(select,join,where,日期,) $criteria = new CDbCriteria; //select $criteria->select = ...
- html制作统计期末成绩,JS-结合html综合练习js的对象——班级成绩表制作
对象综合练习 body { font: 14px "微软雅黑"; } span { padding: 5px; } table { margin: 0 auto; border: ...
- yii mysql数据库操作_Yii2数据库操作常用方法小结
本文实例讲述了Yii2数据库操作常用方法.分享给大家供大家参考,具体如下: 查询: // find the customers whose primary key value is 10 $custo ...
- 【Yii框架系列一】Yii中CDbCriteria常用总结
2019独角兽企业重金招聘Python工程师标准>>> Yii中CDbCriteria常用总结 Yii的Active Recorder包装了很多. 特别是把SQL中 把where,o ...
- Yii 中Criteria常用方法
$criteria = new CDbCriteria; //select $criteria->select = '*';//默认* $criteria->select = 'id,na ...
- Yii CGridView 基本使用(三)关联表相关字段搜索
加入 关联表 相关字段的搜索: 先说一句,我们在这里仅仅谈 "一对多" 的关联搜索,首先,不要忘了我们的数据库,忘记的同学请戳这里:这里.能够看到在 tbl_post 中是有一个外 ...
- Yii AR Model CRUD数据库操作
Yii AR很好很强大,但刚开始不知道怎么使用,可以先看下官方文档官方文档:http://www.yiichina.com/guide/database.ar 下面是我对AR的一些理解对于一个Mode ...
最新文章
- IOS工作笔记(五)
- Linux中OBS在Wayland环境下黑屏只显示鼠标的应对措施
- GetResponse() 基础连接已经关闭:服务器关闭了本应保持活动状态的连接
- 葡萄城报表V11 SP2新版本震撼发布!
- 暑期训练日志----2018.8.24
- 收藏 | EfficientNet模型的完整细节
- Yocto tips (10): Yocto hellworld 加入一个软件包
- 不知道不 OK!53 个 Python 经典面试题详解
- stm32中的延时函数
- linux从哪里入侵电脑,linux入侵的基本命令网站安全 -电脑资料
- 视频编码格式转换软件:compressor for mac中文版
- 【rmzt】美女之目露凶光win7主题
- java 手机推荐_Java一样也智能 中低端手机上网助手推荐
- 和华明诚:提高店铺关注的操作方法
- 有得必有失,你该把技术做多细?
- 我们真的需要会议耳机吗?
- “ 这片绿茵从不缺乏天才,努力才是最终的入场券——梅西 ”
- win7一直显示正在关机_win7系统一直卡在正在关机无法关机怎么解决
- Thread.currentThread().getName()
- 多元统计分析最短距离法_(完整word版)多元统计分析模拟试题
热门文章
- 一个关于CentOS下apache配置修改生效的问题
- Subversion For Windows的安装与使用
- 计算机网络共享是什么意思,网络共享与便携式热点是什么意思
- win10计算机无法启动mfc7450,解决联想M7650,7600,M7450,7400驱动WIN10系统下不能用固件...
- mysql 减少文件排序_消除更新查询中的mysql文件排序
- Xamarin图表开发基础教程(13)OxyPlot框架支持的其它图表
- XamarinAndroid组件教程RecylerView适配器使用动画
- Xamarin XAML语言教程模板视图TemplatedView(一)
- python 加速循环的执行_python循环怎么用多线程去运行
- python os模块是什么_python常见模块之os模块