작성
·
258
답변 1
0
안녕하세요.
아래의 쿼리를 실행 할때 레코드별로 name 컬럼에 대입되서 조건절 참/거짓 판단이 진행됩니다.
select * from member where name !='leegugu' or name !='kimhongsam'
이때 name 컬럼에 'kimhongsam' 값이 들어왔을 경우,
아래 와 같이 진행이 됩니다.
- 원본 SQL : name !='leegugu' or name !='kimhongsam'
- 대입 후 SQL : 'kimhongsam' !='leegugu' or 'kimhongsam' !='kimhongsam'
그리고 or 연산자 기준으로 왼쪽은 피연산자(1), 오른쪽은 피연산자(2)로 아래와 같이 참 / 거짓 판단이 됩니다.
--> 피연산자(1) : 'kimhongsam' !='leegugu' => True (서로가 같지 않으니 참)
--> 피연산자(2) : 'kimhongsam' !='kimhongsam' => False
결과적으로, or 연산자는 피연산자 중 1개만 참이라도 결과를 출력하기 때문에 결과가 출력이 됩니다.