【问题标题】:how to get last 4 records without auto-increment ID如何在没有自动增量 ID 的情况下获取最后 4 条记录
【发布时间】:2012-04-05 16:40:22
【问题描述】:

我有一个主键不是自动递增的表。这里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 获取记录...

【问题讨论】:

  • 您有一个时间戳列作为表架构的一部分?
  • 此表中还有其他列吗?
  • 你不能通过 created_at 进行 SQL 查询排序并将结果限制为 4 吗?
  • 吸取的教训,seeker_nic 应该是一个索引键,添加一个自动递增的各种 id...

标签: php sql


【解决方案1】:

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

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 2020-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-03
    相关资源
    最近更新 更多