Найти/определить/приблизительно вычислить какого id (auto increment-primary key) нет в базе - MySQL

Формулировка задачи:

Дано: простая таблица с 2 колонками id(a_i), value(varchar). Дамп такой: 1-картошка 2-яблоко 3-помидор 5-тыква 9-баклажан Нужно: получить 4 или 6 или 7 или 8. Разрешено: использовать php. Не разрешено: делать SELECT * ... WHERE 1 и проверять каждую запись, т.к. возможно в таблице будет сотни тысяч записей.

Код к задаче: «Найти/определить/приблизительно вычислить какого id (auto increment-primary key) нет в базе - MySQL»

textual
SELECT  
FROM
  `простая таблица` t1
  LEFT JOIN  `простая таблица` t2 ON t1.Id + 1 = t2.Id
WHERE  t2.Id IS NULL AND t1.Id < (SELECT Max(Id) FROM `простая таблица`)

7   голосов, оценка 4.143 из 5


СОХРАНИТЬ ССЫЛКУ