我运行一个mysql查询,从表中获取特定结果。然后我想在两个html表中打印这些结果。第一个按列排序,已经通过将ORDER BY放入mysql查询来完成。但后来我想要打印由不同列排序的结果。但是,我不想再次运行mysql查询,因为这太慢了。
总结一下: 有没有办法重新排序mysql查询的结果?
(对不起,如果问题不清楚,这是我第一次使用该网站。)
答案 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中排序更快或更慢。可能值得测试。