我有两列Page_from
和Page_to
。记录排序后,它们显示为......
Page_from Page_to
1 4
5 7
9 11
此处缺少第8页。
我想找到丢失的页码。所以我必须能够将前一行Page_to
的值与当前行中的Page_from
进行比较。
答案 0 :(得分:0)
您可以通过查找上一条记录,并比较之前的page_to
和当前的page_from
来查找缺失序列的开头。如果存在差距,您可以同时获得第一页和最后一页。
select tprev.page_to + 1 as missing_page_from, t.page_from - 1 as missing_page_to
from (select t.*,
(select tprev.page_to
from t tprev
where tprev.page_from < t.page_from
limit 1
) as prev_to
from t
) t
where prev_to is not null and
prev_to <> t.page_from - 1;