mysql - SQL - 如何自动选择 1 到 1000 之间剩余的最小 id

标签 mysql sql

我的问题是我需要在服务器上发出请求:

https://INeedTheDocsWithThisId="id"

“id”需要介于 1 到 1000 之间。 我的问题是我现在使用自动增量,这在 ids 中留下了漏洞。

示例:我的 ID 为:1,2,3,4。如果我删除 2。下一个将是 5 而不是 2。

如何创建一个函数,自动选择 1 到 1000 之间未使用的最小数字?

谢谢大家。

最佳答案

以下 SQL 可用于查找 ID 中的漏洞。它使用将表连接到自身(别名为 ab),并在未找到 ID + 1 的记录时返回最低的 ID + 1。它速度很快,但不会在表中的第一条记录之前找到漏洞。

SELECT MIN(a.ID) + 1
FROM YourTable a
    LEFT JOIN
       YourTable b
       ON a.id + 1 = b.id
WHERE b.id IS NULL
    AND a.id < 1000;

关于mysql - SQL - 如何自动选择 1 到 1000 之间剩余的最小 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43364235/

相关文章:

MySQL创建外键错误150

php - 修复sql查询(更新mysql之前工作)

sql - SSMS 智能感知不一致

mysql - 复杂的 mySQL 查询,查找重复项,按日期和组排序

php - codeigniter 内部连接没有按预期工作

mysql - 选择在mysql中加入多个表?

mysql - 左连接未获得预期数据 - 返回不准确的结果

php - 如何在php中显示SUM()

c# - Visual C# 存储过程要求不需要的参数

带有where子句的mysql select语句并额外选择一行