2012-05-29 18 views
1

得到一些過去的行我有PostgreSQL表:PostgreSQL的表

Username1 SomeBytes1 

Username2 SomeBytes1 

Username1 SomeBytes1 

Username1 SomeBytes1 

我需要從名字USERNAME1但是從表的末尾得到一些行。例如,我需要最後一行用戶名1

select from my_table where user = Username1 LIMIT 2 

給我第2行,但我需要最後兩個。

我該如何選擇它?

謝謝。

+2

請定義「第一個」和「最後一個」。 – wildplasser

回答

4

第一個和最後一個表是非常隨意的。爲了有一個好的預測結果,你應該總是有一個order by條款。如果你有,那麼獲得最後兩行將變得容易。

舉例來說,如果你有一個主鍵或類似的ID(這是由序列填充)的東西,那麼你可以這樣做:

select * from my_table where user = 'Username1' order by ID desc limit 2. 

desc告訴數據庫以相反的順序對行進行排序,這意味着最後將是第一個。

1

您的表是否有主鍵? /你的桌子可以排序嗎? 因爲'first'和'last'的概念意味着元組的排序。如果是這種情況,您可以通過其他方式對數據進行排序,以便「最後」條目處於頂端。然後你可以用你試過的陳述來訪問它們。