如何在没有自动增量 ID 的情况下获取最后 4 条记录


how to get last 4 records without auto-increment ID

我有一个表,主键不是自动递增的。这里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 条记录",除非您有一列包含该信息。

根据您在问题中提供给我们的信息,数据库无法对您的记录进行排序: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 ),并不意味着您不能拥有自动递增的代理键。

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