2009-03-27 6 views
2

쿼리 'SELECT foo FROM bar WHERE a = x AND b = y OR c = z'이 주어지면이 쿼리는 어떻게 구문 분석됩니까?MySQL 논리 연산자

(a = x AND b = y) OR c = z?
a = x AND (b = y OR c = z)?

단순한 예이지만 AND/OR을 더 많은 검색어와 섞어서 사용한다면 어떨까요?

답변

3

이미 대답 한대로 AND이 우선하고 우선 구문 분석됩니다.

저는 여러분이 실제로 찾고있는 대답이 다음과 같다고 생각합니다 : SELECT foo FROM bar WHERE a = x AND b = y OR c = z과 같은 쿼리를 작성하지 마십시오.

SELECT foo FROM bar WHERE ((a = x AND b = y) OR c = z) 인 경우 또는 SELECT foo FROM bar WHERE (a = x AND (b = y OR c = z)) 인 경우 처음부터 그렇게 작성하십시오.

다음 주 (또는 월 또는 연도)에 쿼리를 다시 보았을 때 알아 내야 할 필요가 없으므로 나중에 유지 보수 담당자에게도 도움이됩니다.