select * from TTT
select
t1.id + 1 as 'start missing id',
MIN(t2.id) - 1 as 'end missing id',
MIN(t2.id) - t1.id - 1 as 'count of missing id'
from
TTT t1 left join TTT t2
on t1.id < t2.id
group by t1.id
having MIN(t2.id) - t1.id > 1

本文介绍了一种使用SQL查询丢失ID范围的方法。通过联接同一表两次并分组,可以找出ID连续性中断的位置,从而确定缺失ID的起始、结束及数量。
select * from TTT
select
t1.id + 1 as 'start missing id',
MIN(t2.id) - 1 as 'end missing id',
MIN(t2.id) - t1.id - 1 as 'count of missing id'
from
TTT t1 left join TTT t2
on t1.id < t2.id
group by t1.id
having MIN(t2.id) - t1.id > 1

8478

被折叠的 条评论
为什么被折叠?