1

我有一个主键不是自动递增的表。这里 PK 是 seeker_nic ,我想获取该表的最后 4 条记录。

 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...

4

1 回答 1

1

自动增量不是问题。问题是关系数据库中的行没有隐含的顺序,因此除非您有包含该信息的列,否则无法确定哪些是“最后 4 条记录”。

根据您在问题中提供给我们的信息,数据库无法订购您的记录:既seeker_nic不能也name不能订购以您想要的方式为您提供记录。

如果您有一个可以排序的列,例如 a creation_dateorid列,您可以这样做:

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

仅仅因为你有一个自然键 ( seeker_nic),并不意味着你不能有一个自动递增的代理键。

如果您没有可以确定列应如何排序的列,那么您就没有运气了。

于 2012-04-05T16:48:03.807 回答