Sql 从具有数千行的表中查询最近1000条记录的最佳方法?
我有这个postgresql代码Sql 从具有数千行的表中查询最近1000条记录的最佳方法?,sql,postgresql,sql-order-by,Sql,Postgresql,Sql Order By,我有这个postgresql代码 SELECT * FROM listings WHERE status != 'inactive' ORDER BY pkey DESC LIMIT 1000 OFFSET 0 准确地说,这将查询前1000个仍处于活动状态的列表,然后对其进行排序描述。 是否有查询最新/最新数据的最佳方法? 例如,我有500000行,现在当我执行查询时,我希望查询499000-500000行 谢谢您的帮助。最后一条X记录按Y降序排列与第一条X记录按Y升序排列相同,不是吗?
SELECT *
FROM listings
WHERE status != 'inactive'
ORDER BY pkey DESC LIMIT 1000 OFFSET 0
准确地说,这将查询前1000个仍处于活动状态的列表,然后对其进行排序描述。
是否有查询最新/最新数据的最佳方法?
例如,我有500000行,现在当我执行查询时,我希望查询499000-500000行
谢谢您的帮助。最后一条X记录按Y降序排列与第一条X记录按Y升序排列相同,不是吗?在得到结果后,您必须再次翻转顺序 简单的例子:
Data: C, E, B, A, D
Descending: E, D, C, B, A
Descending (last 3): C, B, A
Ascending: A, B, C, D, E
Ascending (first 3): A, B, C
Ascending (first 3, reverse sorted): C, B, A
你说的只是含混不清的话 这将查询前1000个仍处于活动状态的列表,然后对其进行排序描述 这是不准确的。它将对排序id DESC进行排序,然后选择“第一个”1000(当对DESC进行排序时,可以将其视为“最后一个”1000) 所以,我认为你的问题的答案就在你的问题中。您显示的查询将选择“last”(即“pkey”列中具有最大值的记录)1000条记录,从最近的记录到1000年前的记录排序
请注意,唯一真正需要注意的是,它并不完全是499000-500000行,这只有在最近1000行都处于“活动”状态时才是正确的。就这一点而言,为什么它被标记为php?