mysql 查找可用最小 + 唯一 ID

2022-08-30 14:51:52

我有一个列ID和大约1000个项目,其中一些然后被删除了id=90, id=127, id=326

我如何进行查询以查找那些可用的ID,以便我可以重复使用另一个项目?

它就像一个,但我只想找到不在我的数据库中的ID,所以如果我删除一个项目,下次我点击添加项目,我会将其插入min(ID)ID = 90id = 90


答案 1

您可以使用以下查询获取最小可用 ID:

SELECT MIN(t1.ID + 1) AS nextID
FROM tablename t1
   LEFT JOIN tablename t2
       ON t1.ID + 1 = t2.ID
WHERE t2.ID IS NULL

它的作用是将表与自身联接,并检查 ID 是否为。如果为空,则该 ID 可用。假设您有以下表格:
1
2
5
6min+1nullID

然后,此查询将为您提供所需的结果。3


答案 2

不要重复使用 ID。您通常有足够的可用ID,因此您不必关心碎片。

例如,如果您重复使用ID,来自搜索引擎的链接可能指向与搜索索引中任何内容完全无关的内容 - 在这种情况下,显示“未找到”错误要好得多。


推荐