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), :=
'개발' 카테고리의 다른 글
[MySQL] 테이블 결합하기(JOIN) (0) | 2018.08.01 |
---|---|
[MySQL] 추출 결과 합치기(UNION) (0) | 2018.08.01 |
Microsoft Azure에서 PHPMailer SSL, TLS 인증 오류 해결 (0) | 2017.12.18 |
FlashDevelop에서 디버깅 오류 Error #1065: Variable ? is not defined. 해결 (0) | 2017.11.29 |
VS 2008 프로젝트 : error PRJ0003 : 'rc.exe'을(를) 생성하는 동안 오류가 발생했습니다. (0) | 2015.07.09 |
댓글