Я пытаюсь написать запрос, который выбирает следующий свободный номер из таблицы, где номер должен быть от 2000 до 2500
У меня есть таблица:
| id | number |
|-------|---------|
| 1 | 1000 |
| 2 | 1001 |
| 3 | 3000 |
Я хочу получить 2001
У меня sql:
SELECT number + 1 next_number
FROM table t
WHERE NOT EXISTS(
SELECT * FROM table
WHERE number = t.number + 1)
ORDER BY number LIMIT 1
И он возвращает мне 1002.
Я пробовал:
SELECT number + 1 next_number
FROM table t
WHERE number + 1 BETWEEN 2000 AND 2500
AND NOT EXISTS(
SELECT * FROM table
WHERE number = t.number + 1)
ORDER BY number LIMIT 1
И ничего не получил.
Однако, если я добавлю номер 2000 в таблицу, он вернет 2001.
Как исправить этот запрос, чтобы вернуть 2001, даже если в таблице нет номера 2000?