2012-12-19 3 views
0

일치하는 특정 시간대의 결과를 표시하려고합니다. 정상적으로 작동합니다. 그러나 표시된 결과가 party_type 1 또는 2이어야한다는 절을 추가하고 싶습니다.AND 결과가 더 많은 것보다 나타나야합니다.

그래서이

WHERE start_datetime >= '$DATE_START_SELECTED' 
AND end_datetime < '$DATE_END_SELECTED' 
AND PARTY_TYPE='1' 
OR PARTY_TYPE='2' 
GROUP BY events.ENTRANCE_PRICE 

을했지만 지금은 어제 몇 가지 추가 이벤트를 보여주는 것 ...하지만 흥미로운 것은, 그것이 더 돌아 이벤트를 표시되지 않는 점이다.

+4

여기에 대괄호를 사용합니다. – galchen

답변

9

WHERE start_datetime >= '$DATE_START_SELECTED' 
AND end_datetime < '$DATE_END_SELECTED' 
AND (PARTY_TYPE IN (1,2)) 
GROUP BY events.ENTRANCE_PRICE 

또한 여러 조건을 사용하는 방법에 대한 자세한 내용은 here을 확인 할 수 있습니다 것 트릭

WHERE start_datetime >= '$DATE_START_SELECTED' 
AND end_datetime < '$DATE_END_SELECTED' 
AND (PARTY_TYPE='1' 
OR PARTY_TYPE='2') 
GROUP BY events.ENTRANCE_PRICE 

에게 모든 일의 약간 청소기 버전을해야한다.

+0

그랬습니다. 감사! – pufAmuf

2

필요에 따라 부울을 평가하려면 대괄호를 사용해야합니다. Operator Precedence 아래의 문서로 특히, 그룹은 함께

(PARTY_TYPE='1' OR PARTY_TYPE='2') 

ANDOR보다 더 높은 우선 순위를 가지고 있습니다, 당신에게

WHERE start_datetime >= '$DATE_START_SELECTED' 
AND end_datetime < '$DATE_END_SELECTED' 
AND (PARTY_TYPE='1' OR PARTY_TYPE='2') 
GROUP BY events.ENTRANCE_PRICE 
+0

고마워요. :) – pufAmuf

3

을 제공합니다. 대안

WHERE  start_datetime >= '$DATE_START_SELECTED' 
     AND end_datetime < '$DATE_END_SELECTED' 
     AND (PARTY_TYPE='1' OR PARTY_TYPE='2') 

또는 MySQL을의 IN() 연산자를 사용합니다 : 당신은 당신의 요구 사항에 가장 적합한 우선 순위를 강제로 괄호를 추가해야

WHERE (  start_datetime >= '$DATE_START_SELECTED' 
     AND end_datetime < '$DATE_END_SELECTED' 
     AND PARTY_TYPE='1' 
    ) OR PARTY_TYPE='2' 

:

WHERE  start_datetime >= '$DATE_START_SELECTED' 
     AND end_datetime < '$DATE_END_SELECTED' 
     AND PARTY_TYPE IN ('1','2') 
+0

고마워요! 귀하의 의견은 상당히 광범위합니다! – pufAmuf

0
을 따라서 현재의 필터로 평가

귀하의 질의에 AND와 OR이 어느 정도의 수준으로 모호합니다. 같은 레벨의 두 조건을 넣기를 원할 것입니다 : 날짜 시작, 날짜 끝 (그리고 이것들은 괜찮습니다) 및 party_type (1 또는 0)에 관한 것입니다. 대신 쿼리에서 4 개의 독립적 인 것으로 처리하십시오. 다음과 같이 설정하십시오.

start_datetime >= '$DATE_START_SELECTED' 
    end_datetime < '$DATE_END_SELECTED' 
    AND (PARTY_TYPE='1' OR PARTY_TYPE='2') 

도움이되기를 바랍니다.

관련 문제