티스토리 뷰

Database

SQL WHERE의 AND, OR 우선 순위

구티맨 2021. 10. 1. 11:33

WHERE에 조건들이 많은 경우, 같이 처리를 해줘야하는 조건의 경우 괄호 () 를 써서 묶어 줍니다. 

 

AND, OR의 우선 순위를 알고 있으면, 불필요하게 괄호 () 를 사용 하지 않아도 됩니다.

 

결론 부터 말하자면, AND가 OR 보다 우선 순위가 높습니다.

WHERE (id != '' AND name != '') AND 
(
( home = '강남구' AND transport = '버스' ) OR
( home = '송파구' AND transport = '지하철' ) OR
)

WHERE (id != '' AND name != '') AND 
(
home = '강남구' AND transport = '버스' OR
home = '송파구' AND transport = '지하철' OR
)

위의 2가지 WHERE 절은 같은 조건 입니다.

 

집이 강남구 이고, 이동 수단이 버스 이거나 집이 송파구 이고, 이동 수단이 지하철 인 조건인데,

 

home과 transport 조건에 괄호를 넣지 않더라도 AND가 우선적으로 처리가 되기 떄문에 괄호가 필요 없습니다.

 

대신 AND 끼리는 같은 우선 순위이기 때문에 먼저 처리하고자 하는 조건이 있으면 괄호로 묶어 주어야 합니다.

 

아이디와 이름이 있는 이라는 조건을 위해 AND 연산자끼리는 괄호를 해주었습니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함