在MySQL查询中执行ORDER BY和LIMIT的顺序
问题描述:
我有一个像这样的查询,我想以分页格式显示排序的记录。在MySQL查询中执行ORDER BY和LIMIT的顺序
这是我的查询。
SELECT * FROM answers
WHERE userid = '10'
ORDER BY votes LIMIT 10, 20
LIMIT
的两个参数将用于生成记录的逐页显示。现在,我的问题是ORDER BY
。 MySQL如何执行此查询?
1路
- 根据过滤器
- 排序他们根据过滤器 选择记录
- 限制它们
第二方式
- 选择记录
- 限制它们
- 排序他们
如果我认为像MySQL的引擎,我想实现第2次,因为我将不得不以较低的记录进行排序?
有人可以对此有所了解吗?
Regards
答
一个SQL LIMIT将在所有数据库总是对查询结果的工作,所以它会运行与ORDER查询BY然后这一结果将是有限的。这是一个功能需求,数据库不需要像这样执行。
因此第一种方式。
答
Mysql遵循第一种方式。
答
最后两个答案中提到的第一种方法。从用户角度来看,第二种方式反正不会很有用。
答
如果您想要第二种方式,请尝试使用具有限制的子查询,然后再订购。
喜欢的东西:
SELECT * FROM
(
SELECT * FROM answers
WHERE userid = '10'
LIMIT 10
)
ORDER BY votes
这证明我需要实践的思维像MySQL :) – vikmalhotra 2010-10-13 03:55:04