2010-11-26 3 views
2

현재 12 개의 일치하는 레코드를 찾기 위해 서브 쿼리를 사용하여 하나의 복잡한 쿼리를 실행하는 PHP 코드가 있습니다. 12 개 미만의 레코드가 반환되면 코드는 동일한 쿼리의 두 번째 버전을 실행하고 약간 수정 된 WHERE 절을 사용하여 이전에 첫 번째 쿼리에서 검색 한 레코드에 추가합니다. 총 12 개의 레코드가 어셈블 될 때까지 쿼리의 수정 된 버전을 계속 실행합니다.조건부로 연속적인 MySQL 서브 쿼리를 실행할 수 있습니까?

UNION을 사용하여 여러 개의 쿼리 (현재 5 개가 있음)를 결합 할 수 있지만 조합의 첫 번째 쿼리가 12 개의 레코드를 반환하더라도 성공적으로 쿼리가 실행됩니다. 각 쿼리는 복잡하기 때문에 자원을 낭비하고 싶지 않습니다. (또는 내가 잘못 생각한가? LIMIT에 도달하면 MySQL이 서브 쿼리 실행을 중단한다는 것을 알고 있습니까?)

현재 PHP에서 수행중인 작업을 MySQL에서 수행 할 수있는 방법이 있습니까? 예를 들어 5 개의 하위 쿼리가 포함 된 쿼리를 작성하고 앞의 하위 쿼리가 원하는 개수를 생성하지 않는 경우에만 연속 된 하위 쿼리를 진행할 수 있습니까?

+1

저장 프로 시저가 그렇게하지 않습니까? –

답변

1

매우 간단하게이 검사를 수행하는 서버에 stored procedure을 만들 수 있습니다.

+0

@ Ólafur : 감사합니다. –

+0

반갑습니다. –

관련 문제