Mysql 查找以DB为单位的数字范围中的间隙

Mysql 查找以DB为单位的数字范围中的间隙,mysql,sql,Mysql,Sql,我之前曾在《如何找到介于两个数字范围之间的数字》上发表过这篇文章。我可以使用下面的查询来解决它 SELECT count(StartingNumber) FROM range WHERE 690 BETWEEN StartingNumber and EndingNumber or 1800 BETWEEN StartingNumber and EndingNumber or StartingNumber in ( SELECT StartingNumber

我之前曾在《如何找到介于两个数字范围之间的数字》上发表过这篇文章。我可以使用下面的查询来解决它

  SELECT count(StartingNumber) FROM range
  WHERE 690  BETWEEN   StartingNumber and EndingNumber
    or 1800  BETWEEN   StartingNumber and EndingNumber
    or StartingNumber in ( SELECT StartingNumber
                            FROM range
                            WHERE StartingNumber BETWEEN 690 AND 1800);
现在我想知道是否有可能在不同的数字范围内找到差距:

所以,如果有1-100101-135150-200201-255 255-270 301-326的范围

我想找出缺失的范围136-149、217-300等等。 DB表列的图示如下所示:

现在,我想知道是否有可能编写一个SQL查询,列出缺少的范围251-2991251-1299

select *
from
(
  select d1.hi + 1 tlo, min(d2.lo) - 1 thi
  from data d1
  join data d2 on d1.hi < d2.lo
  group by d1.hi
) t
where tlo < thi
子查询查找hi和lo之间的范围,外部查询只需选择正确的范围。

那么,您可以将子查询与?可以指定实际数据顺序的COL

select * from (
    select *, (select idto 
               from table 
               where ? < t.? 
               order by ? desc LIMIT 1)+1 as MissingFrm,
           idfrm-1 as MissingTo
     from table t
)tt where idfrm <> MissingFrm;

非常感谢,这正是我想要实现的!!祝你有美好的一天!!