在 phpMyAdmin 中按 ID(整数)排序并不总是有效,为什么?

问题描述 投票:0回答:1

解释一下:当我在 phpMyAdmin 中按 ID(无符号 int10)对特定表进行排序时,它正确列出了最近的几行,但随后跳到了更旧的行。

(MySQL 5.7.39下的phpMyAdmin 5.2.0)

...但是当我按日期排序时,它按预期工作(查看 ID 列,不用介意过去一周丢失的数据,这是正常的)

sorting phpmyadmin mysql-5.7
1个回答
0
投票

您有一个表,其中 ID 自动递增,即一条记录的 id 值为先前创建的行的 ID + 1。

您还有一个

creation_date
字段,它没有默认值,因此我们知道无论在那里设置什么值,它都是在插入或更新期间给出的,而不是从后备值推断出来的(假设它没有默认值)以前)。

因此,记录的实际创建顺序是其 id 的顺序。

至于为什么

creation_date
不符合,可能的原因有很多。首先,它们可能是在插入时就这样给出的。或者创建日期已更新。或者一些较旧的记录被删除,无论是谁做了,都意识到这是一个错误,因此重新插入它们,现在的 ID 比删除之前更大。

鉴于您共享的信息,无法确定到底发生了什么,因此您需要查看日志、旧备份、提交的脚本、数据库副本,并四处询问以获取更多信息。

也不要忘记检查您的代码,看看是否有任何可疑的内容混淆了您的创建日期。

© www.soinside.com 2019 - 2024. All rights reserved.