본문 바로가기
개발

[MySQL] 논리 연산자 우선 순위

by 솜씨제이 2018. 8. 1.

MySQL의 WHERE 절에서 논리 연산자인 AND나 OR를 사용하는 경우 AND 연산자 우선 순위가 높기 때문에 무조건 AND가 먼저 처리된다.

만약 OR를 먼저 처리하고 싶다면 괄호()를 이용해서 아래와 같이 감싸줘야 한다.

SELECT * FROM table1 WHERE (col1=1 OR col2=1) AND col3=1;

참고로 MySQL 연산자 우선순위는 아래와 같다.

INTERVAL
BINARY, COLLATE
!
- (unary minus), ~ (unary bit inversion)
^
*, /, DIV, %, MOD
-, +
<<, >>
&
|
= (comparison), <=>, >=, >, <=, <, <>, !=, IS, LIKE, REGEXP, IN
BETWEEN, CASE, WHEN, THEN, ELSE
NOT
AND, &&
XOR
OR, ||
= (assignment), :=


댓글