SQL LIMIT排序是如何工作的



如果从sql数据库中进行选择并添加限制,并多次运行,结果会有所不同。然而,当你想从数据库中随机选择时,你通常这样做:

order by random()
limit n

我的问题是如何sql限制排序工作。如果它不是随机的,那么结果是如何变化的?

LIMIT不做排序,句号。如果需要特定的排序,请使用ORDER BY

如果不指定ORDER BY,则不按任何特定的顺序返回。它们可能每次运行都是相同的,但这取决于与从底层数据文件、索引或连接顺序检索行有关的各种事情。当没有指定ORDER BY时,不管什么可能控制排序,您应该而不是依赖于它。

它因每个供应商的实现而异,但通常生成整个结果集,然后如果存在则应用ORDER by,然后服务器只返回n行给客户端。

注意,没有ORDER BY的LIMIT或TOP是不确定的。也就是说,不能保证每次执行的结果是一致的。

最新更新