2009-07-28 8 views
0

나는 거리에 의해 색인 된 우편 번호가있는 배열을 가지고 있습니다. 지금은 참아 요에 따라 피자 가게 을 선택해야합니다, 같은 몇 가지 : 30 ~ 40 querys을 의미 우편 배열이 시간에 30 ~ 40 지퍼까지 성장할 수여러 개의 mysql 선택 쿼리

ziparray[] 

foreach loop 

SELECT * FROM location WHERE food='pizza' and zip='ziparray[]' 

//do stuff 

. 더 좋은 방법이 있나요? 나는 저장 프로 시저를 이해하기를 희망한다.이 방법으로 나는 단지 parms을 전송하고 데이터를 다시 보낼 수있다 (만약 내가 할 수있다면).

답변

4
SELECT * 
FROM location 
WHERE food='pizza' 
    and zip IN(90210, 55555, etc..) 
0

IN 연산자를 사용하는 방법에 대해 알려주십시오.

SELECT column_name(s) 
FROM table_name 
WHERE column_name IN (value1,value2,...) 
0
당신은 당신의 쿼리 이 SELECT가되도록, IN 절에 해당 배열을 변형 고려하는 것이 좋습니다

* 위치는 어디 ('03750'음식 = '피자'와 지퍼, '03532' , .. 다른 50 개의 우편 번호)

0

for 루프를 사용하여 쿼리를 생성 할 수 있습니다. 다음은 PHP의 예입니다 :

$zipArray = array(); 

$query = "SELECT * FROM location WHERE food='pizza' AND (1=2"; 


foreach($zipArray as $zip){ 
    $query .= "OR zip ='$zip' "; 
} 

$ query. = ")";

1 = 2 부분이 조금 엉성한 경우 foreach 루프에서 각 추가 끝에 OR을 추가하고 일부 함수를 사용하여 문자열의 마지막 부분을 잘라낼 수 있습니다.

관련 문제