Я делаю некоторую работу для сайта в среде общего хостинга, у которого есть история изменения настроек на нас. На этой неделе сценарий обновления неожиданно перестал работать, и основная причина заключается в том, что предложение NOT IN, которое использовалось для возврата результатов, больше не выполняется.
Запрос, по сути, таков:
SELECT *
FROM db1.entry
where entry_id not in
(
select entry_id from db2.content
)
Я могу убедиться, что действительно есть записи, которые должны быть возвращены, проверяя две таблицы напрямую. При выполнении следующих двух запросов первый возвращает entry_ids, а второй - нет:
SELECT *
FROM db1.entry
order by entry_id desc
SELECT *
FROM db2.content
order by entry_id desc
И, повторюсь, все это работало правильно в течение нескольких месяцев. Не было внесено никаких изменений в код, но возможно, что настройки MySQL были изменены по пути. Также возможно, что что-то изменилось в среде PHP, но это кажется менее вероятным, поскольку рассматриваемый запрос не выполняется точно так же при запуске из phpMyAdmin, как при запуске с живого сайта.
И, конечно, он все еще отлично работает на моем устройстве разработчика.
Живой сайт работает под управлением MySQL версии 4.1.11. Мой вопрос: кто-нибудь знает настройку MySQL для этой версии, которая изменит способ работы этих запросов NOT IN?
Спасибо.