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;
非常感谢,这正是我想要实现的!!祝你有美好的一天!!