728x90
맨처음 실행은 이랬고 순서대로 OR 과 AND를 할 거라고 생각했으나 type이 0이외에도 출력
SELECT * FROM TB_FAULT tf WHERE device = 3 OR device = 4 AND `type` = 0 ORDER BY write_time DESC
연산자의 순서는
- ()괄호
- NOT
- AND
- 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 |
댓글