mysql查找最小+唯一ID可用

bra*_*age 25 php mysql unique min

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

我如何进行查询以查找那些可用的ID,以便我可以重用其他项目?

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

sha*_*mar 38

您可以使用此查询获取最小可用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
Run Code Online (Sandbox Code Playgroud)

它的作用是它将表连接到自身并检查min+1ID是否null存在.如果它为null,则该ID可用.假设您有以下表格ID:
1
2
5
6

然后,此查询将为您提供3您想要的结果.

  • @shamittomar,如果未使用“id=1”,您的查询将不会得到它。但有效! (2认同)

Thi*_*ter 5

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

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

  • 谢谢,但事实并非如此,我需要知道如何获得min + unique + unused id (4认同)