Я получил таблицу с нормальной настройкой auto inc. Идентификаторов. Некоторые строки были удалены, поэтому список идентификаторов мог выглядеть примерно так:
] (1, 2, 3, 5, 8, ...)
Затем из другого источника ( Изменить: Другой источник = НЕ в базе данных ) У меня есть этот массив:
( 1, 3, 4, 5, 7, 8)
Я ищу запрос, который можно использовать в базе данных, чтобы получить список идентификаторов: НЕ в таблице из имеющегося у меня массива. Это будет:
(4, 7)
Существуют ли такие? Мое решение прямо сейчас заключается в создании временной таблицы, чтобы работала команда "WHERE table.id IS NULL", или, что еще хуже, с использованием функции PHP array_diff, чтобы узнать, что отсутствует после получения всех идентификаторов из таблицы.
Поскольку список идентификаторов сокращается до миллионов строк, я очень хочу найти лучшее решение.
Спасибо! / Thomas
Edit 2:
Мое основное приложение - это довольно простая таблица, заполненная множеством строк. Это приложение управляется с помощью браузера, и я использую PHP в качестве интерпретатора кода.
Все в этой таблице должно быть экспортировано в другую систему (которая является сторонним продуктом), и пока что нет другого способа сделать это, кроме вручную, используя функцию импорта в этой программе. Также есть возможность вставлять новые строки в другую систему, хотя согласованная маршрутизация никогда не допускает этого.
Проблема в том, что моя система не может быть на 100% уверена, что пользователь сделал все правильно с того момента, когда он / она нажал ключ "экспорт". Или, что в другой системе никогда не создавались строки.
Из другой системы я могу получить CSV-файл, содержащий все строки, которые есть в этой системе. Итак, сравнив файл CSV и мою таблицу, я могу увидеть, что: * В другой системе отсутствуют строки, которые следовало импортировать * Если кто-то создал строки в другой системе
Проблема не в "решении". Это лучшее решение, так как в строках так много данных.
Еще раз спасибо!
/ Thomas