나는 우리에게 설정을 바꾸어 놓은 기록이있는 공유 호스팅 환경에서 사이트에 대해 약간의 작업을하고 있습니다. 이번 주에 업데이트 스크립트가 갑자기 작동을 멈추었습니다. 근본적인 이유는 결과를 반환하는 데 사용 된 NOT IN 절이 더 이상 그렇게하지 않는다는 것입니다.MySQL "In 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에서 실행될 때 문제의 쿼리가 동일한 방식으로 실패하기 때문에 가능성이 적습니다.
그리고 물론, 그것은 여전히 내 devbox에 완벽하게 작동합니다.
라이브 사이트에서 MySQL 버전 4.1.11을 실행 중입니다. 내 질문은, 그 사람이 쿼리가 작동하는 방식을 바꿀 것이라고 그 버전에 대한 MySQL 설정을 아는 사람 있습니까?
감사합니다.
대신에 존재하며, 그것은 도움이되지 않았다 . 나는 당신의 코멘트에 답한 후에 NOT NOT NULL을 포함하도록 내 질문을 업데이트하고 실제로 다시 시도했다. 구조에 "보스 효과"가있는 것 같습니다. 당신이 보스에게 보여주기 전까지는 아무 것도 없습니다. 깨진 것들은 당신이 인터넷에서 그들에 대해 물어 보면 사소한 문제를 해결합니다. 감사합니다. –
@Jason : 다음에 인터넷을 통해 상사에게 보여주고 왜 작동하지 않는지 묻습니다. 이렇게하면 효과가 서로 상쇄됩니다. – Quassnoi