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