Postgresql从表中获取最后一行

时间:2012-05-29 08:43:07

标签: postgresql select

我有PostgreSQL表:

Username1 SomeBytes1

Username2 SomeBytes1

Username1 SomeBytes1

Username1 SomeBytes1

我需要从名称Username1获取一些行,但是从表的末尾开始。例如,我需要持续使用Username1

的行
select from my_table where user = Username1 LIMIT 2

给我前两行,但我需要最后两行。

我如何选择它?

谢谢。

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'的概念意味着对元组进行一些排序。如果是这种情况,您可以反过来对数据进行排序,以便您的“最后”条目位于最前面。然后,您可以使用您尝试过的语句访问它们。