我正在寻找2个数字之间最低的数字。
可能会有3080和3085之间的跳跃,依此类推,我只需要3081。 这是用于为条目分配ID,并且这些条目也可以删除,因此ID也是如此,并且由于我们的范围有限,我们希望确保使用所有数字。因此,如果没有任何遗漏的号码,则必须获取下一个可用号码。如果它满了,直到3850,那么它就需要抢3851。
如果已将其删除,则为0;如果有帮助,则为null。
SELECT number, user_id
FROM entries
WHERE user_id = '18'
AND number BETWEEN '3000' AND '4000'
我不确定如何按此顺序获得最低的可用号码,请帮忙。谢谢。
答案 0 :(得分:0)
如果您想要Help -> Send Feedback -> Report a problem
的下一个缺失号码,则:
id
如果您想为特定的select e.id, e.number + 1
from entries e
where not exists (select 1
from entries e2
where e2.id = e.id and e2.number = e.number + 1
);
使用它,则将id
添加到外部id = 18
子句中。
答案 1 :(得分:0)
尝试使用自我联接:
Explore
Specials
子句中的关键条件是SELECT MIN(e1.number) + 1 num_missing
FROM entries e1
LEFT JOIN entries e2
ON e2.number = e1.number + 1
WHERE e1.id = 18 AND e1.number BETWEEN 3000 AND 4000 AND
e2.number IS NULL;
,这意味着该特定数字在序列中没有下一个立即数,即,它是间隙的开始。