【问题标题】:ORDER by ID to get latest records?ORDER by ID 获取最新记录?
【发布时间】:2013-08-23 02:05:51
【问题描述】:

当我想获取最新记录时,按 ID 而非日期字段排序是个好主意吗?应该会更快,因为 ID 是主键,但我总是能得到最新的记录吗?

【问题讨论】:

  • ID 可能是主键,但您也可以为其他字段创建索引以确保它们是唯一的,例如。
  • 这取决于ID 的计算方式。它是一个身份吗?它总是升序吗?人们可以插入不是自动计算的ID吗?基本上,当我们对您的主键一无所知时,您会问我们

标签: sql sqlite sorting sql-order-by


【解决方案1】:

如果您按 ID 订购,并且您的 ID 是您的身份列,那应该没问题,因为您将按从最新到最早的顺序订购。请记住将结果按 DESC 顺序排列。

【讨论】:

    【解决方案2】:

    取决于最新的ID是否比之前的ID更大。

    这取决于实用主义,如果您可以完全控制 id 是什么,并且如果将来的某些更改迫使您更改 Id(例如从 int 到 string),那么您准备接受打击,那么我不会批评你。

    如果您对能够依赖它感到紧张,请将其抽象出来,例如 GetItemsInOrder、方法、存储过程或视图类型的东西 这样,如果硅神拒绝对你微笑,你可以添加一个 Created_Order 列,从 ID 填充它,修改事物以使用它,然后继续进行可能是重大改变的事情。

    【讨论】:

      【解决方案3】:

      只要您的 ID 一直在自动递增,它就会以正确的顺序更快地工作。

      如果没有,添加一个“添加订单”列,从最旧日期的 0 开始分配一个值到最新的任何数字,让该列在未来自动递增并按此排序,仍然比按日期排序。

      【讨论】:

        猜你喜欢
        • 2021-01-20
        • 2013-06-27
        • 1970-01-01
        • 2015-02-26
        • 2016-05-15
        • 1970-01-01
        • 2013-12-17
        • 1970-01-01
        相关资源
        最近更新 更多