重新排序mysql查询php的结果

时间:2010-11-15 15:21:23

标签: php mysql

我运行一个mysql查询,从表中获取特定结果。然后我想在两个html表中打印这些结果。第一个按列排序,已经通过将ORDER BY放入mysql查询来完成。但后来我想要打印由不同列排序的结果。但是,我不想再次运行mysql查询,因为这太慢了。

总结一下: 有没有办法重新排序mysql查询的结果?

(对不起,如果问题不清楚,这是我第一次使用该网站。)

4 个答案:

答案 0 :(得分:1)

PHP有一些非常棒的排序功能。我很可能会创建一个用户定义的排序函数,并将其与结果集一起使用:

http://php.net/manual/en/function.usort.php

使用PHP排序通常非常快。如果结果集不是太大,则比第二个查询更快。

答案 1 :(得分:1)

您可以使用php中的一种排序方法自行重新排序结果集。 http://php.net/manual/en/array.sorting.php

我假设你想在这里使用usort()http://php.net/manual/en/function.usort.php

答案 2 :(得分:1)

为什么不只显示一次并使用jQuery Table sort plugin。此外,如果您想要显示两次,那么使表格可以排序是没有问题的。

当您将排序操作从服务器端(PHP)传输到客户端(Javascript)时,优势在于性能提升。

答案 3 :(得分:0)

如果你真的想在MySQL中使用排序功能,而不是在PHP中,那么一个选项是编写PHP代码以进行两次查询。在您的第一个查询中:

SELECT id FROM table_name WHERE (whatever) ORDER BY first_criteria

然后在第二个查询中,获取行:

WHERE id IN (2,17,388,etc.)
ORDER BY different_column

。 。 。当然,将第一个查询中的ID传递给IN子句。

不确定这是否比在PHP中排序更快或更慢。可能值得测试。