【发布时间】:2013-03-08 20:02:05
【问题描述】:
我正在使用 PDO 连接到我在数据库中的表。所以我写了一个快速函数来返回从数据表返回的结果。是的,我可以在查询中使用 SORT BY 对结果进行排序,但我想在此查询中避免这种情况,因为此查询会为大表提取信息。
* 首先我需要能够在用户端对这个数据集进行排序。所以我需要以某种方式按不同的列排序,这样我就可以按列“fullName”排序或按“userID”或“createdDate”排序
所以当 PDO 获取结果并返回我想要排序的数组时。
* 第二个问题,我在这个函数中的什么地方做一个免费的结果,还是在查询之外释放它们?
function getDataSet($query, $connection){
$cmd = $connection->query( $query );
return $cmd->fetchAll(); //PDO::FETCH_ASSOC
}
然后我可以通过简单地调用这个函数
$dataset = getDataSet("select * from users", $db)
在我的第一个问题中,我想对 $dataset 进行排序。
【问题讨论】:
-
你说的“大桌子”是什么意思?
-
让我直截了当地说,您有一个针对数据排序进行了优化的数据库系统,而您希望在未优化的系统中进行。您能解释一下为什么要避免使用有效的解决方案而使用低效的解决方案吗?
-
@didierc 一百多条记录!
-
我想不出任何情况下
ORDER BY查询不会更快。当然,这也可以根据用户的输入进行动态化。 -
抱歉,我们仍然不同意。如果表被正确优化(正确的索引等),在 SQL 中排序仍然会更快。如果您真的有一个没有的超自然场景,您必须向我们展示真实的东西,以便我们可以帮助您。
标签: php mysql sorting multidimensional-array