핵심 규칙

괄호가 없으면 AND가 먼저 묶이고, 그다음 OR가 결합됩니다

같은 조건식이라도 묶이는 순서가 달라지면 통과하는 행이 바뀝니다. 특히 ANDOR를 섞을 때는 사람이 읽는 순서보다 DB의 우선순위가 먼저 적용됩니다.

1순위 NOT
2순위 AND 먼저 묶음
3순위 OR 나중에 결합
예시 조건
WHERE category = '전자기기' OR category = '도서' AND price < 50000
괄호 없이 쓰면
DB는 우선순위에 따라 자동으로 다시 묶어 해석합니다.
괄호로 의도를 고정하면
먼저 묶을 범위를 명시해서 사람의 의도와 DB 해석을 일치시킵니다.
DB 해석
category = '전자기기' OR (category = '도서' AND price < 50000)
(category = '전자기기' OR category = '도서') AND price < 50000
통과하는 행
전자기기 행은 가격과 무관하게 먼저 통과

price < 50000 조건은 도서 쪽에만 붙습니다. 그래서 비싼 전자기기까지 결과에 들어올 수 있습니다.

전자기기와 도서 모두 5만 원 미만만 통과

카테고리 범위를 먼저 만든 뒤 마지막에 가격 조건을 적용하므로, 두 카테고리에 같은 가격 기준이 걸립니다.

왜 중요한가
보이는 순서대로 읽으면 결과를 오해하기 쉽습니다

쿼리가 짧아도 해석 차이로 조회 대상이 넓어질 수 있어, 운영 데이터에서는 의도와 다른 행을 반환할 위험이 있습니다.

괄호는 필터 범위를 고정하는 안전장치입니다

혼합 조건식에서는 AND/OR를 암묵적으로 믿지 말고, 어떤 묶음을 먼저 평가할지 명시하는 편이 안전합니다.

실무 기준: ANDOR를 함께 쓰면 괄호로 먼저 계산할 범위를 고정하세요. 짧은 조건식이라도 결과 집합이 달라질 수 있습니다.