【发布时间】:2020-12-17 16:52:07
【问题描述】:
我有一个看起来像这样的查询:
SELECT article FROM table1 ORDER BY publish_date LIMIT 20
ORDER BY 是如何工作的?它会排序所有记录,然后获取前 20 条记录,还是获取 20 条记录并按 publish_date 字段排序?
如果是最后一篇,你不能保证真的得到最新的 20 篇文章。
【问题讨论】:
-
请注意,如果某些
publish_dates 相等,则按它们排序不会给出确定的结果,这意味着如果您使用LIMIT进行分页,您最终可能会在不同页面上获得相同的项目! -
注意你应用这些的顺序。如果你先做 LIMIT,然后做 ORDER BY,它会抛出一个错误。 ORDER BY 必须在查询中排在第一位。
标签: mysql sql sql-order-by sql-limit