简单聊聊关于Yii框架的CDbCriteria
来源:互联网 发布:qq解冻软件 编辑:程序博客网 时间:2024/06/04 18:52
简单聊一下Yii框架中的CDbCriteria:
通常我们使用Yii的CDbCriteria是用来查找数据,最典型的例子是查询功能。
$criteria=new CDbCriteria;
这样就创建了一个CDbCriteria,然后可以使用下面的这些方法:
$criteria->compare();$criteria->select='';$criteria->group='';...
等等这些Yii已经为我们封装好的查询、排序、GROUP BY语句,很简单,很实用。但是,你要有一些特殊的需求,比如查询求和:
$criteria->select="*, ifnull(sum(sys_income),0) as sum_schedule_income";
这样是不是可行?我尝试了一下,没有成功!也就是说CDbCriteria不支持这种SQL函数,只能做比较简单的查询。猜想:Yii只是帮我们做了简单的SQL语句转换,但是更为复杂的SQL函数没有继续做,我还没有查阅Yii具体实现的源码,只是猜测。
所以遇到这种需要更加复杂的需求,就只能另辟蹊径了。
用原生的SQL语句:
$sql = "select *,ifnull(sum(sys_income),0) as sum_schedule_income from a where sys_income<>0 group by sd_id,uid ";$datas = Yii::app()->mydb->createCommand($sql)->queryAll();
同样,使用$criteria->with,是用来查找关联表的数据,很实用、简单。但是,如果我只想查找关联表中的某几个字段,例如user表中的用户名和所在单位这两个字段,但是user表中还存放着用户的账号和密码,使用$criteria会查找关联表中的所有数据。当然,在stackoverflow上有介绍只查询关联表中某几个字段的,没尝试成功,o(╯□╰)o……
所以,遇到这种复杂的情况最好还是优先选择原生SQL吧,坑有点多,有时间具体研究一下源代码,看是否可以改进一下。
阅读全文
0 0
- 简单聊聊关于Yii框架的CDbCriteria
- Yii CDbCriteria的常用方法
- Yii CDbCriteria的常用方法
- Yii CDbCriteria的常用方法
- Yii框架学习CDbCriteria查询条件收集
- Yii 框架中CDbCriteria常用总结
- yii CDbCriteria
- Yii CDbCriteria
- Yii CDbcriteria
- Yii CDbCriteria
- Yii CDbCriteria
- YII CDbCriteria 的一些常用方法记录
- yii框架的简单curd
- 简单的Yii框架操作
- 简单的Yii框架应用
- yii框架的简单应用
- Yii CDbCriteria常用用法
- Yii CDbCriteria() 常用方法
- 一步一步学MySQL---18 MySQL常用函数(3)
- MSCI:无计划修改MSCI中国A股国际指数编制方法
- Setup LVS and Keepalived on Debian
- Linux内建命令(built-in)与外部命令
- 处理hdfs上错误的block块并修复
- 简单聊聊关于Yii框架的CDbCriteria
- php xml转array的方法
- ubuntu安装Redis
- 关于mybatis tomcat 和jetty启动报 {dataSource-1} inited 错误的记录
- 牛客网校招模拟-好多鱼
- css3开发:px em rem详解
- 微信小程序源码案例大全
- onchange oninput
- BZOJ 1006: [HNOI2008]神奇的国度 &&弦图学习笔记