인프런 커뮤니티 질문&답변

나선주님의 프로필 이미지
나선주

작성한 질문수

성공적인 SQL 인젝션 공격을 위한, SQL 기본 문법

SQL 기본 문법 활용 예제(1)

질문입니다.

작성

·

258

1

안녕하세요



SQL기본문법 활용예제(1)강의에서
8분 25초경
예제 5번문제 해설해주시는부분이 잘 이해가 안되는데
 
처음에 name이 kimhongsam 인 부분에 name에 들어가서
name이 leegugu부분이 참이 된다고 하셨는데
그 이유가 궁금합니다..

답변 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개만 참이라도 결과를 출력하기 때문에 결과가 출력이 됩니다.

 

 

 

나선주님의 프로필 이미지
나선주

작성한 질문수

질문하기