select * from books where author='Thomas Down' or '1=1'; 이 값을 입력하면
1=1값이 참이여서 논리연산자에 의해 참을 리턴하는데...
참을 리턴하는데 왜 books 데이터베이스의 모든 정보가 나오는 걸까요?
Hit : 4553 Date : 2013/04/15 11:27
cd80
sql구문에서 where문은 쿼리의 결과중 where문에 참이되는 결과들만 리턴이 되게 합니다
select * from books 를 하게되면 books 테이블의 모든 데이터를 출력하는데
여기서 where author='Thomas Down' 이라는 조건을 걸게되면
모든 데이터중 author 필드의 데이터가 Thomas Down인 컬럼만을 반환합니다
근데 이때 author = 'Thomas Down' or '1=1'; 을 하게되면 where문은 항상 참이 되므로
where문에 의해 필터링 되는 결과가 없어지게 됩니다
따라서 테이블내의 모든 데이터가 반환되는것입니다