关于sql(select top n) 的问题

大家好,我是个菜鸟,刚学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的。请问楼主问题解决了么?