Googleで「
シーケンスから最初に欠落している番号を見つける 方法を示します。 :
値(1,2,4,18,19,20,21)を持つテーブルtbl(id int)があり、id値のシーケンスで最初に欠落している数値を見つけたい場合:
SELECT t1.id+1 AS Missing
FROM tbl AS t1
LEFT JOIN tbl AS t2 ON t1.id+1 = t2.id
WHERE t2.id IS NULL
ORDER BY t1.id LIMIT 1;
+---------+
| Missing |
+---------+
| 3 |
+---------+