database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
ㆍDB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
DB2 Q&A 2994 게시물 읽기
No. 2994
'OR 1=0' 은 어떤 기능을 하는지.. 도져히 모르겠습니다. ㅜㅜ
작성자
유비브로(ryubigbro)
작성일
2010-07-22 16:46
조회수
7,161

SELECT *
  FROM DB2.SLJFIDD
 WHERE 폐기년월일 > :WK-M-BASE-YMD
   AND 거래가능구분 NOT IN ('0','9')
   AND (지점코드 BETWEEN :WK-BRNCD-FR
                     AND :WK-BRNCD-TO
                      OR 1=0)

예전에 어떤 개발자분께서 만드신 쿼리입니다.
이 쿼리에서 'OR 1=0' 은 어떤 기능을 하는지.. 도져히 모르겠습니다. ㅜㅜ
아시는분.. 답변 부탁드릴께요..

이 글에 대한 댓글이 총 3건 있습니다.

아무 기능도 없는것 같음.
OR 1=0 은 없어도됩니다.

제생각에는
   AND (지점코드 BETWEEN :WK-BRNCD-FR
                     AND :WK-BRNCD-TO 의
조건 무시할때는 'OR 1=1'로 하고
조건 적용할때는 'OR 1=0'로 하도록 한게 아닌가합니다.
지우고 다시 입력하기 귀차나서 ??? -.-

박진복(pjb708)님이 2010-07-22 18:31에 작성한 댓글입니다.

제 생각에는... 성능에 관련된 사항 같은데요..

지점코드가 인덱스되어있다면, 'or 1=0' 은 인덱스 적용을 못하게 만들어 늦은 응답속도의 원인이 될꺼라 생각됩니다.

도대체... 이 쿼리를 만드신 개발자분께서는 왜 'or 1=0' 를 사용했을까요?

DB2 옵티마이져와 관련 있는게 아닐까, 생각도 해봅니다.

유비브로(ryubigbro)님이 2010-07-23 08:57에 작성한 댓글입니다.
이 댓글은 2010-07-23 08:58에 마지막으로 수정되었습니다.

알았습니다!!
어떤 특정 테이블의 인덱스가 1번 (A,B,C), 2번 (A,B) 이 있는 경우,
쿼리 조건으로 A, B, C 항목 모두 사용한다면, 쿼리실행시, 1번 인덱스를 타게 됩니다.
여기서, 어떤 사정의 의해, 조건은 변함없고 인덱스만 2번으로 태우고자 한다면,
AND (C='XXX' OR 1=0) 으로 해서, 2번 인덱스를 태울 수 있습니다.
 

유비브로(ryubigbro)님이 2010-08-19 16:03에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
2997db2 개발툴... [1]
암비
2010-08-05
7979
2996Function 만들 때 chr 함수 또는 mod 함수 사용은? [2]
박소연
2010-07-29
10677
2995AIX에 DB2 9.1버젼 설치한 후 계정및 권한 생성하는 방법
질문드려요.
2010-07-28
7783
2994'OR 1=0' 은 어떤 기능을 하는지.. 도져히 모르겠습니다. ㅜㅜ [3]
유비브로
2010-07-22
7161
2991여러 컬럼의 기간을 합치고 싶습니다
이상진
2010-07-15
6853
2990DB2 집계함수에 대해서 문의드립니다
정우철
2010-07-07
7336
2989db2 SQL30082N 에러
이해진
2010-07-06
7534
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다