본문 바로가기
SQL

SQL 연산자 우선 순위

by Slow Motion~ 2023. 3. 17.
728x90

맨처음 실행은 이랬고 순서대로 OR 과 AND를 할 거라고 생각했으나 type이 0이외에도 출력

SELECT * FROM TB_FAULT tf WHERE device = 3 OR device = 4 AND `type` = 0 ORDER BY write_time DESC

연산자의 순서는

  1. ()괄호
  2. NOT
  3. AND
  4. OR

따라서 이 문법은 실제로 

(device = 3) OR ((device = 4) AND (`type` = 0))

이렇게 실행되고 있었던 것이다.

device 3은 그냥 다 조회했다.

 

해결은 간단하게 괄호를 써서 해결

SELECT * FROM TB_FAULT tf WHERE (device = 3 OR device = 4) AND `type` = 0 ORDER BY write_time DESC

'SQL' 카테고리의 다른 글

LIMIT  (0) 2023.03.21
COUNT 함수, 동물 수 구하기  (0) 2023.03.21
중복 제거  (0) 2023.03.20
MAX() 함수 와 별칭  (0) 2023.03.20
3월에 태어난 여성 회원 목록 출력  (0) 2023.02.08

댓글