欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

如何在数据表当中找出被删掉的数据行ID

程序员文章站 2022-10-31 11:07:37
这个问题是一年前我刚步入IT行业的一个面试题,当时抓破头皮都想不到的问题,但现在回想过去自身不禁感到可笑,不多扯直接写解决方案。如何在数据表当中找出被删掉的数据行ID,意思是:在一堆的数据当中,让你找出数据存在间隔的那些数据行的ID(先不考虑两个数据行中存在多个间隔的情况)。 可见ID=14那条数据 ......

  这个问题是一年前我刚步入IT行业的一个面试题,当时抓破头皮都想不到的问题,但现在回想过去自身不禁感到可笑,不多扯直接写解决方案。如何在数据表当中找出被删掉的数据行ID,意思是:在一堆的数据当中,让你找出数据存在间隔的那些数据行的ID(先不考虑两个数据行中存在多个间隔的情况)。

  如何在数据表当中找出被删掉的数据行ID

  如何在数据表当中找出被删掉的数据行ID

  可见ID=14那条数据行正是我要们寻找的,对于这种情况,可用自查询方式处理:

select ID,New_ID,(New_ID - ID -1) as '存在的间隔数量',ID+1 as '被删除的行ID'
from
(
select ID,New_ID=(
select min(b.ID) id
from FamilyImages b
where b.id > a.id
) 
from FamilyImages a
) c
where ID+1 <> New_ID

 查询结果:

  如何在数据表当中找出被删掉的数据行ID

   那么若数据行之间的间隔存在多个的情况怎么办,其实你可留意第三个字段:“存在的间隔数量”,若存在多个,可考虑循环拼接字符串,放入第四个字段:“被删除的行ID”就可以了,这是一个思路。

   希望这篇文章能给大家帮助,若存在不足,请留言赐教。

   A young ilder ~ an old beggar !