mysql列中的最低自由值

时间:2014-12-18 17:36:08

标签: php mysql sql mysqli

我已经搜索了但是我总是找到最少和最好的提示。我希望将未使用的下一个递增数字连接起来。如下所示:

entries
1
2
3
5
6
7

如果每个数字都是我表格中的一行,我希望数字4作为结果,在下面的例子中:

1
2
3
4
5
6

我想要数字7作为结果。是否有可能在SQL语句中完成此任务?

最佳, 罗宾

2 个答案:

答案 0 :(得分:3)

此查询假设数字1在您的表中

select min(number) + 1 from entries e1
where not exists (
    select 1 from entries e2
    where e2.number = e1.number + 1
)

如果您想要所有缺失的数字(间隙不大于1)而不是最小的数字,请删除min()

答案 1 :(得分:0)

它认为解决方案是使用下一个值进行自联接,并提取第一个最低结果。例如:

表:values,列value

SELECT v1.value
FROM values v1
LEFT JOIN values v2 ON v1.value = (v2.value + 1)
WHERE v2.value IS NULL
ORDER BY v1.value ASC
LIMIT 1