我有PostgreSQL表:
Username1 SomeBytes1
Username2 SomeBytes1
Username1 SomeBytes1
Username1 SomeBytes1
我需要从名称Username1获取一些行,但是从表的末尾开始。例如,我需要持续使用Username1
的行select from my_table where user = Username1 LIMIT 2
给我前两行,但我需要最后两行。
我如何选择它?
谢谢。
答案 0 :(得分:4)
表中的第一个和最后一个是非常随意的。为了获得良好的可预测结果,您应始终拥有order by
子句。如果你有,那么获得最后两行将变得容易。
例如,如果你有一个主键或类似ID(由一个序列填充),那么你可以这样做:
select * from my_table where user = 'Username1' order by ID desc limit 2.
desc
告诉数据库按相反的顺序对行进行排序,这意味着last将是第一个。
答案 1 :(得分:2)
你的桌子有主键吗? /您的餐桌可以分类吗? 因为'first'和'last'的概念意味着对元组进行一些排序。如果是这种情况,您可以反过来对数据进行排序,以便您的“最后”条目位于最前面。然后,您可以使用您尝试过的语句访问它们。