【发布时间】:2014-04-13 14:15:44
【问题描述】:
我用分页显示来自 CSqlDataProvider 的数据,我想为我的结果添加排序
我的情况是 -
我用
$dataProvider=new CSqlDataProvider($sqlAll, array(
'totalItemCount'=>$count,
'分页'=>数组('pageSize'=>$pageSize,),
'参数' => $参数
));
得到结果后,我计算了另外 2 个要显示的字段(不是使用 $sqlAll 查询提取的)并根据它们进行排序我的问题是:我只得到 $pagesize 数量的结果,发生的情况是排序是每个 $pagesize 结果而不是所有结果。
我可以将计算字段添加到 CSqlDataProvider 或分页吗?
【问题讨论】:
-
您是否有机会在 SQL 查询中使用限制?因为你应该把它留给数据提供者。
-
限制由分页和$pagesize完成
-
好的,那么我建议尝试我的答案的方法 1。尽管它可能会导致复杂的查询。这是最具可扩展性的解决方案。如果您确定您的结果记录集将保持相对较小(或有性能不佳的风险),请仅使用方法 2。
-
这是一个非常复杂且耗时的查询...
-
好吧,我想您可以发布有关查询以及如何优化其性能的问题;)也许有一个简单的解决方案或解决方法。或者也许可以应用一些缓存。无论哪种方式,我都必须查看查询(或它的原则)来帮助解决这个问题。除了我给出的问题之外,我没有看到任何真正可行的解决方案(但这可能只是我;)。