2012-04-05 72 views
1

我有一個表不帶自動遞增的主鍵。這裏PK是seeker_nic ,我想最後的4個記錄此表的..如何獲得最後4條記錄沒有自動遞增ID

SEEKER 
    seeker_nic  Name 
    --------------------- 
    81025   ali 
    81013   bilal 
    87651   hamza 
    78911   biya 
    98726   saqib 
    62528   mirza 

我想這

seeker_nic  Name 
--------------------- 
87651   hamza 
78911   biya 
98726   saqib 
62528   mirza 

我能做到這一點,如果表有ID(PK)與自動增量...但我不知道如何獲得這個PK的記錄seeker_nic ...

+0

你有一個時間戳列作爲表模式的一部分? – 2012-04-05 16:42:56

+0

此表中是否有其他列? – NullUserException 2012-04-05 16:43:20

+0

難道你不能通過created_at進行SQL查詢排序並將結果限制爲4嗎? – rapcal 2012-04-05 16:43:41

回答

1

自動增量不是問題。問題是關係數據庫中的行沒有默認的順序,所以沒有辦法確定哪些是「最後4條記錄」,除非您有一列包含該信息。

根據您在問題中給出的信息,數據庫無法訂購您的記錄:seeker_nicname都不能按照您的要求爲您提供記錄。

如果你有可能被訂購,像creation_dateid列一列,你可以這樣做:

SELECT seeker_nic, name 
    FROM seeker 
ORDER BY <column_here> DESC 
    LIMIT 4     -- syntax may vary depending on RDMBS 

僅僅因爲你有一個自然鍵(seeker_nic),並不意味着你可以」 t有一個自動遞增的代理鍵。

如果您沒有可確定列應如何排序的列,那麼您運氣不佳。

+0

好thnx您的suggesstion .... :) – maham 2012-04-05 16:57:33

相關問題