下一组序号mysql

Next group of sequential numbers mysql

我有一个 table,里面有很多 phone 个数字。其中很多是按顺序排列的。我想要的是能够请求一组 'n' 序列号,然后获得它们的发行。

比如我的table是这样的:

'number'
'2220381'
'2220382'
'2220383'
'2220384'
'2220386'
'2220387'
'2220389'
'2220390'
'2220391'
'2220392'
'2220393'
'2220394'
'2220395'

我发现了很多关于如何使用 oracle 和 MSSQL 执行此操作以及如何查找 Gaps 的线程,但是他们用来查找 Islands 的函数似乎在 MySQL 中不可用但是我我感兴趣的是一个大小为 n 的序列块。

所以我想做的是向这个数据库询问 5 个序列号(我不在乎它们是什么,但想要接下来的 5 个)。并且在这种情况下 return 2220386、2220387、2220388、2220389、2220390

我的 table 基本上是一个池,只有一列。我已经尝试过各种连接,但运气不佳。

create table nums
(
    num int not null
);

-- truncate table nums;
insert nums (num) values (1),(2),(14),(15),(16),(17),(20),(21),(22),(23),(24),(30),(81),(120),(121),(122),(123),(124);

select min(t2.num)
from
( 
select t1.num
from nums t1 
where 5 in (select count(*) from nums where num in (t1.num,t1.num+1,t1.num+2,t1.num+3,t1.num+4))
) t2;

回答: 20