解释一下:当我在 phpMyAdmin 中按 ID(无符号 int10)对特定表进行排序时,它正确列出了最近的几行,但随后跳到了更旧的行。
(MySQL 5.7.39下的phpMyAdmin 5.2.0)
...但是当我按日期排序时,它按预期工作(查看 ID 列,不用介意过去一周丢失的数据,这是正常的)
您有一个表,其中 ID 自动递增,即一条记录的 id 值为先前创建的行的 ID + 1。
您还有一个
creation_date
字段,它没有默认值,因此我们知道无论在那里设置什么值,它都是在插入或更新期间给出的,而不是从后备值推断出来的(假设它没有默认值)以前)。
因此,记录的实际创建顺序是其 id 的顺序。
至于为什么
creation_date
不符合,可能的原因有很多。首先,它们可能是在插入时就这样给出的。或者创建日期已更新。或者一些较旧的记录被删除,无论是谁做了,都意识到这是一个错误,因此重新插入它们,现在的 ID 比删除之前更大。
鉴于您共享的信息,无法确定到底发生了什么,因此您需要查看日志、旧备份、提交的脚本、数据库副本,并四处询问以获取更多信息。
也不要忘记检查您的代码,看看是否有任何可疑的内容混淆了您的创建日期。