2014-02-14 48 views
0

我有兩列Page_fromPage_to。當記錄排序時,它們顯示爲...訪問上一行值的MySQL

Page_from Page_to 
1    4 
5    7 
9    11 

此處缺少頁碼8。 我想查找缺少的頁碼。因此,我必須能夠比較前一行中的Page_to與當前行中的Page_from的值。

+0

這需要自我加入 –

+0

將表格模式的[SQL Fiddle](http://sqlfiddle.com/)與一些數據一起發送。 – mathielo

回答

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;