СШ
Сергей Шпак

Можно ли написать запрос, выводящий пропущенные значения в столбце первичного ключа, то есть номера отсутствующих строк?

Есть таблица в базе данных MySQL. Примерно 1500 записей. Первичный ключ - столбец с автоинкрементом. Реально записей меньше, чем номер последней записи.

АК
Алексей Коченов

наверное автоинкремент был задан с каким-то шагом.
запрос выводит то что в базе данных ЕСТЬ, а не то чего там НЕТ.

зная первый индекс и шаг автоинкремента ты и сам можешь вычислить номера которые не использовались.

SELECT
1 AS gap_start,
MIN(e.id) - 1 AS gap_end
FROM
factura_entrada e
WHERE
NOT EXISTS(
SELECT
1
FROM
factura_entrada
WHERE
id = 1
)
LIMIT 1
UNION
SELECT
a.id + 1 AS gap_start,
MIN(b.id)- 1 AS gap_end
FROM
factura_entrada AS a,
factura_entrada AS b
WHERE
a.id < b.id
GROUP BY
a.id
HAVING
gap_start < MIN(b.id);
пробуй.. .
на просторах инета решений полно...

МЧ
Мария Чиркова

Ну и что? Автоинкремент дает уникальность, а не последовательность (вернее первичный ключ дает уникальность) . То, что часть записей пропущено это нормально. Обычными запросами врядле получится найти, яб писал отдельный скрипт-макрос-программу. А зачем вообще надо эти пропущенные ид искать?

АБ
Александр Белавин

Берем временную таблицу, с теми же столбцами, и тем же автоинкрементом, в 1-м столбце. Заполняем пустыми строками, кроме 1-го столбца, до максимального значения в исходной таблице. Потом делаем UPDATE: перегоняем из исходной таблицы, строки, по значению этого столбца. И всио.

СТ
Сергей Толкачев

Создать временную таблицу с таким же ключом, добавить в неё мах (ключ_в_первой_базе) записей. И сравнивай, кто мешает?

Похожие вопросы
Как с помощью SQL-запроса, удалить дублирующие записи в которых значения столбцов одинаковы.
MySQL какой запрос максимально быстро отработает 84000 строк, если надо вывести строки в которых есть искомое значение?
Как загнать две строки в массив ввиде ключ значение php
Задан двумерный массив А из 5 строк и столбцов. Составить программу, которая вычисляет значение произведения сумм строк
Как в Excel из N строк и M столбцов выбрать строки, в которых есть число А (фильтр по всем столбцам сразу)?
кто может быстенько написать кода в НТМЛ табличку, на 4 столбца и 4 строки? помогите плиз!!
нахождение пропущенных значений sql
Изменить значение по умолчанию столбца в MySQL
Excel. Строки в столбце поставить в обратном порядке
Как в Excel получить значения строк и столбцов, если есть их сумма?