查询结果反转

时间:2011-06-22 15:01:25

标签: php mysql

我使用以下查询来检索我的数据库的最后10个结果,但我需要它们不按降序排列。无论如何我可以用查询来完成这个或者我需要在php中处理它吗?谢谢你的帮助。

SELECT * FROM MSG ORDER BY id DESC LIMIT 0,10

4 个答案:

答案 0 :(得分:4)

SELECT * FROM(SELECT * FROM MSG ORDER BY id DESC LIMIT 0,10)ORDER BY id - 应该可以工作

答案 1 :(得分:4)

请尝试以下方法解决您的问题

SELECT * FROM (SELECT * FROM MSG ORDER BY id DESC LIMIT 10) AS RequiredLimit ORDER BY id ASC

答案 2 :(得分:3)

除了已有的mysql答案外,php解决方案是在原始结果集上使用array_reverse()

答案 3 :(得分:1)

虽然使用嵌套查询是一个答案,但我认为执行两个查询比嵌套查询或子查询更优化。减少开销 - 如果我错了,请纠正我。

我建议:

$row_offset = get_result("SELECT COUNT(*) FROM MSG;") - 10;

$rows = get_result("SELECT * FROM MSG LIMIT " . $row_offset . ", 10;");

假设(当然!)get_results()是一个执行查询并从表中返回数据的自定义函数。