我有一个表(实际上有几个),我想首先从中获取最新条目的结果。这是我的 ORDER BY
子句选项:
- date_created INT(从不更改值)
- id(当然是 INT AUTO_INCREMENT!)
两列应该同样代表插入记录的顺序。我自然会像任何正常人一样使用 date_created
字段,但我仍然对此感到好奇。
我知道这可能有点乱七八糟,但有什么理由或极端情况说明我不应该使用 id
列吗?
编辑: 我认为这个问题对于我们想要真正代表插入顺序的值是模糊的。谢谢大家的所有回答,我将接受最好的答案并继续前进,因为我认为我通过假设 id 始终有序(请参阅@Wrikken 的评论)而使这变得困难。我的直觉是开发人员永远不应该考虑 id ,这是这里的大多数答案所指向的。
最佳答案
依靠 ID 列进行时间排序不是一个好主意,因为这不是它的目的。基本上,ID 只是该行的唯一键,仅此而已。使用 ID 可能永远不会导致问题,但没有理由增加假定按 ID 排序将始终成立的复杂性。例如,您将来可能想要删除条目,然后手动插入新条目,或者从其他来源导入带有过去时间戳的条目。如果您没有 date_created 列,那么 ID 将是您唯一的选择,但既然您有该列,请使用它,因为它是您的最佳选择。
关于mysql - ORDER BY id 或 date_created 以显示最新结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5570958/