Php 如何在没有自动递增ID的情况下获取最后4条记录
我有一个表,它的主键不是自动递增的。这里的PK是导引头 我想得到这张表的最后4条记录Php 如何在没有自动递增ID的情况下获取最后4条记录,php,sql,Php,Sql,我有一个表,它的主键不是自动递增的。这里的PK是导引头 我想得到这张表的最后4条记录 SEEKER seeker_nic Name --------------------- 81025 ali 81013 bilal 87651 hamza 78911 biya 98726 saqib 62528 mirza
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搜索器获得记录…自动递增不是问题。问题在于,关系数据库中的行没有隐含的顺序,因此无法确定最后4条记录是哪一条,除非有一列包含该信息 根据您在问题中提供给我们的信息,数据库无法对您的记录进行排序:无法对seeker_nic和name进行排序,以按照您的要求提供记录 如果您有一个可以排序的列,如创建日期或id列,您可以执行以下操作:
SELECT seeker_nic, name
FROM seeker
ORDER BY <column_here> DESC
LIMIT 4 -- syntax may vary depending on RDMBS
仅仅因为你有一个自然的密钥搜索器,并不意味着你不能有一个自动递增的代理密钥
如果您没有一个列可以决定列的排序方式,那么您的运气就差了。自动递增不是问题所在。问题在于,关系数据库中的行没有隐含的顺序,因此无法确定最后4条记录是哪一条,除非有一列包含该信息 根据您在问题中提供给我们的信息,数据库无法对您的记录进行排序:无法对seeker_nic和name进行排序,以按照您的要求提供记录 如果您有一个可以排序的列,如创建日期或id列,您可以执行以下操作:
SELECT seeker_nic, name
FROM seeker
ORDER BY <column_here> DESC
LIMIT 4 -- syntax may vary depending on RDMBS
仅仅因为你有一个自然的密钥搜索器,并不意味着你不能有一个自动递增的代理密钥
如果您没有一个列可以决定列的排序方式,那就是运气不好。您有一个时间戳列作为表架构的一部分?此表中还有其他列吗?您不能通过创建并将结果限制为4来进行SQL查询排序吗?经验教训是,seeker nic应该是一个索引键,添加排序的自动递增id…您有一个时间戳列作为表架构的一部分?此表中还有其他列吗?您不能通过创建并将结果限制为4来进行SQL查询排序吗?经验教训是,seeker nic应该是索引键,添加排序的自动递增id。。。