大家好,我是个菜鸟,刚学YII不久。
我想实现select top 5 * from [tableName]这句SQL的YII怎么写,我在API的CActiveDataProvider里没有找到接口,现在用的是pagination的pageSize,觉得这样效率不高,求高手指教
大家好,我是个菜鸟,刚学YII不久。
我想实现select top 5 * from [tableName]这句SQL的YII怎么写,我在API的CActiveDataProvider里没有找到接口,现在用的是pagination的pageSize,觉得这样效率不高,求高手指教
定义你的criteria对象实例中的select属性为: criteria=>array(‘select’=>‘TOP 5 *’);
原来如此啊,谢谢!
criteria对象的limit应该是你要的
试了一下,criteria=>array(‘select’=>‘TOP 5 *’); 这种方法不行,会出错,是我版本的问题吗,我是1.1.1的版本。
limit好像没用
limit 没有作用?贴出你的代码看看
top 5 *这种sql在某些数据库管理系统中是不合法的sql语句(比如:mysql),貌似在sqlserver中便是可以的;
相应的在mysql你需要使用order by columnName limit Rows;
$this->criteria = new CDbCriteria();
$this->criteria->select = "id,info,name";
$this->criteria->order = $this->order;
$this->criteria->limit = 5;
$dataProvider = new CActiveDataProvider(‘flash’,array(‘criteria’=>$this->criteria));
foreach($dataProvider->data as $d){
…
}
limit 无论为多少,都没有作用…
很奇怪,limit怎么设,SQL中的LIMIT都是10
出现跟楼主一样的问题了。limit怎么设都是1的。请问楼主问题解决了么?