1
我有一個巨大的表,有幾十萬條記錄。他們都有第一列的唯一編號,儘管有些編號在序列中缺失。Mysql,在一個序列中查找缺少的數字
我想顯示一個單獨丟失的數字列表。
因此,例如:
10029
10032
10034
10036
我試圖得到它顯示:
10030
10031
10033
10035
,我發現這個查詢,但它似乎缺少數字時,有一個範圍:
SELECT t1.id+1 AS Missing
FROM data AS t1
LEFT JOIN data AS t2
ON t1.id+1 = t2.id
WHERE t2.id IS NULL
結果:
10030
10033
正如您所見,10031和10035在該列表中缺失。
這個問題應該幫助:http://stackoverflow.com/questions/1389605/sql-find-missing-ids-in-a-table – mcriecken
如果你可以創建一個臨時表,包含'min(id )'到'max(id)',你可以在它們之間做一個左連接。 – Barmar
有沒有一種方法可以在查詢中完成而不創建另一個表?我試圖儘可能簡單地做到這一點,所以我可以在PHP查詢中使用它。 我看到另一個使用的例子: SELECT a.order_id + 1 AS start,MIN(b.order_id) - 1 AS end – Scott