Skip to content

Instantly share code, notes, and snippets.

@olegpolukhin
Created November 14, 2019 15:03
Show Gist options
  • Save olegpolukhin/50722d75429b7f4b909be6753c963619 to your computer and use it in GitHub Desktop.
Save olegpolukhin/50722d75429b7f4b909be6753c963619 to your computer and use it in GitHub Desktop.
SQL получить пропущенные ID
/*
есть записи в таблице, ID основной автоинкрементный ключ
нужен запрос, который выберет все записи, после которых нет следующей записи
Например для
123568
получить
368
***
после 3 нет 4
после 6 нет 7
после 8 нет 9
*/
SELECT u.user_id
FROM ( SELECT s.user_id, @new_id := @new_id + 1 AS new_id
FROM ( SELECT @new_id := 1 ) i
JOIN ( SELECT r.user_id
FROM tubes.user_info r
WHERE r.user_id > 1
ORDER BY r.user_id
) s
ORDER BY s.user_id
) u
WHERE u.user_id <> u.new_id
ORDER BY u.user_id
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment