我有一个这样的查询,我希望以分页格式显示已排序的记录。
这是我的疑问。
SELECT * FROM answers
WHERE userid = '10'
ORDER BY votes LIMIT 10, 20
LIMIT
的两个参数将用于生成记录的逐页显示。现在,我的问题是ORDER BY
。 MySQL如何执行此查询?
第一路
第二路
如果我认为像MySQL引擎一样,我会想要实现第二,因为我必须对较小的记录进行排序?
有人可以对此有所了解吗?
此致
答案 0 :(得分:3)
SQL LIMIT 将在所有数据库中始终处理查询结果,因此它将使用 ORDER BY 运行查询,然后该结果将受到限制。这是一个功能需求,数据库不需要像这样执行它。
因此第一种方式。
答案 1 :(得分:2)
Mysql遵循第一种方式。
答案 2 :(得分:1)
如果您想要第二种方式,请尝试使用带限制的子查询,然后订购。
类似的东西:
SELECT * FROM
(
SELECT * FROM answers
WHERE userid = '10'
LIMIT 10
)
ORDER BY votes
答案 3 :(得分:0)
最后两个答案提到的第一种方式。从用户的角度来看,第二种方式无论如何都不会非常有用。