2010-11-15 273 views
0

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

所以总结起来: 有没有办法重新安排一个MySQL查询的结果?

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

+1

您将不得不创建一个数组,存储数据并重新排列数组。不需要说这会比再次运行查询更慢。 – 2010-11-15 15:23:22

+0

你能举一个你的意思吗?你想完全重新排序结果吗?或者你想只添加一个二次排序?哦,如果它已经太慢了,你可能会花一些时间加快查询速度,因为它可以节省你长时间的时间...... – ircmaxell 2010-11-15 15:26:51

回答

1
PHP

有一些真正伟大的排序功能。我将最有可能让用户定义的排序功能,使用与您的结果集:

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

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

1

为什么不显示它只是一次,并使用jQuery Table sort plugin。另外,如果您想要显示两次,则表格可以排序时不会出现问题。

当您从服务器端(PHP)向客户端(Javascript)传输排序操作时,优点是性能会提高。

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中排序更快或更慢。可能值得测试。