我有一个表,主键不是自动递增的。这里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_nic
和name
都无法按照您想要的方式为您提供记录。
如果您有可以排序的列(如creation_date
或id
列),则可以执行以下操作:
SELECT seeker_nic, name
FROM seeker
ORDER BY <column_here> DESC
LIMIT 4 -- syntax may vary depending on RDMBS
仅仅因为您有一个自然键 ( seeker_nic
),并不意味着您不能拥有自动递增的代理键。
如果您没有可以确定列应如何排序的列,那么您的运气就不足了。