Postgresql 从表中获取最后几行

0xA*_*xAX 4 postgresql select

我有PostgreSQL表:

Username1 SomeBytes1

Username2 SomeBytes1

Username1 SomeBytes1

Username1 SomeBytes1
Run Code Online (Sandbox Code Playgroud)

我需要从名称为 Username1 但从表的末尾获取一些行。例如,我需要最后到带有 Username1 的行

select from my_table where user = Username1 LIMIT 2
Run Code Online (Sandbox Code Playgroud)

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

我该如何选择它?

谢谢你。

Jim*_*nke 8

表中的第一个和最后一个非常随意。为了获得良好的可预测结果,您应该始终有一个order by子句。如果你有那个,那么获得最后两行将变得容易。

例如,如果您有一个主键或类似 ID(由序列填充)之类的东西,那么您可以执行以下操作:

select * from my_table where user = 'Username1' order by ID desc limit 2.
Run Code Online (Sandbox Code Playgroud)

desc 告诉数据库以相反的顺序对行进行排序,这意味着最后一个将在前。