我运行一个mysql查询,从表中获取特定的结果。然后我想在两个html表格中打印这些结果。第一个排序是通过将ORDER BY放入mysql查询完成的。但是,我想打印由不同列排序的结果。但是,我不想再次运行mysql查询,因为这太慢了。重新排序mysql查询结果php
所以总结起来: 有没有办法重新安排一个MySQL查询的结果?
(对不起如果这个问题不清楚,它是使用网站我的第一次。)
我运行一个mysql查询,从表中获取特定的结果。然后我想在两个html表格中打印这些结果。第一个排序是通过将ORDER BY放入mysql查询完成的。但是,我想打印由不同列排序的结果。但是,我不想再次运行mysql查询,因为这太慢了。重新排序mysql查询结果php
所以总结起来: 有没有办法重新安排一个MySQL查询的结果?
(对不起如果这个问题不清楚,它是使用网站我的第一次。)
有一些真正伟大的排序功能。我将最有可能让用户定义的排序功能,使用与您的结果集:
http://php.net/manual/en/function.usort.php
与PHP排序通常是非常快的。如果结果集不是太大,则比第二个查询快。
您可以简单地使用php中的排序方法之一重新排序结果集。 http://php.net/manual/en/array.sorting.php
我假设你想在这里使用usort()
:http://php.net/manual/en/function.usort.php
为什么不显示它只是一次,并使用jQuery Table sort plugin。另外,如果您想要显示两次,则表格可以排序时不会出现问题。
当您从服务器端(PHP)向客户端(Javascript)传输排序操作时,优点是性能会提高。
如果你真的想在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中排序更快或更慢。可能值得测试。
您将不得不创建一个数组,存储数据并重新排列数组。不需要说这会比再次运行查询更慢。 – 2010-11-15 15:23:22
你能举一个你的意思吗?你想完全重新排序结果吗?或者你想只添加一个二次排序?哦,如果它已经太慢了,你可能会花一些时间加快查询速度,因为它可以节省你长时间的时间...... – ircmaxell 2010-11-15 15:26:51