Mettre à jour
ConfexianMJS a fourni beaucoup mieux réponse en termes de performances.
La réponse (pas aussi rapide que possible)
Voici la version qui fonctionne sur une table de n'importe quelle taille (pas seulement sur 100 lignes) :
SELECT (t1.id + 1) as gap_starts_at,
(SELECT MIN(t3.id) -1 FROM arrc_vouchers t3 WHERE t3.id > t1.id) as gap_ends_at
FROM arrc_vouchers t1
WHERE NOT EXISTS (SELECT t2.id FROM arrc_vouchers t2 WHERE t2.id = t1.id + 1)
HAVING gap_ends_at IS NOT NULL
gap_starts_at
- premier identifiant dans l'écart actuelgap_ends_at
- dernier identifiant dans l'écart actuel