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
운영게시판
최근게시물
MySQL Q&A 28064 게시물 읽기
No. 28064
[급질문] Mysql에서도 가능한지 여쭤보고 싶습니다.
작성자
레미리버(jeremyk)
작성일
2009-03-03 17:20
조회수
5,071

안녕하세요 매번 눈팅만하다가 궁금한게 있어서 고수님들께 여쭤봅니다.


오라클만 쓰다보니 mysql은 첨이라 궁금해서 좋은 답변 부탁드립니다.


1. 오라클의 경우


SELECT NAME

           , COMPANY

           , TEL

   FROM EMP

 WHERE ('1'='1' OR NAME=?)

;


위의 쿼리를 보면 WHERE 절에 NAME의 값이 NULL일경우 전체를 다 SELELCT 하게 되는 쿼리인데요


mysql에서는 위의 where절이 안먹혀서 혹시 다른방법이 있나 여쭤봅니다.


고수님들의 지도 부탁드립니다.

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

안녕하세요 박성원입니다. 


퇴근시간이라 좀 급하게 읽어서 그런지 null일 경우 데이터를 가져오는것을 말씀하시는건가요?

SELECT NAME, COMPANY, TEL   FROM EMP

 WHERE NAME is null



null은 is null과 is not null로 데이트를 검색할 수 있습니다.

박성원(darkancia)님이 2009-03-03 19:42에 작성한 댓글입니다.

해당 쿼리는 ?값이 뭐든 상관없이 전체 데이터를 조회합니다. 
오라클, MySQL의 문제가 아닙니다.

잘 생각해 보세요.

구헌수(madcat)님이 2009-03-03 20:01에 작성한 댓글입니다.

제가 설명을 부족하게 한거 같아서 부연으로 달아봅니다.

where 절을 보면 첫번째 조건에서 '1'='1' 이라는건 결국 전체를 조회 하게 되있습니다.

그러나 () 로 묶은 조건내에서 or 절이 있어서 name에 어떤값이 있고 그값이 해당데이터에 

있을경우 그 결과를 출력하게 되있습니다.

만약 ? 값이 null 이라면 '1'='1' 조건에 따라 전체가 조회 되지요.

oracle에서 테스트할때는 잘나오고 있습니다. 근데 mysql은 여전히 안나오는군요...

그 이유가 정말 궁금해서 여쭤보는 겁니다 ㅎㅎ

레미리버(jeremyk)님이 2009-03-04 10:47에 작성한 댓글입니다.

where (1=1 or name=?)

 

이 where절은 항상 참이네요. true or false = true니까

name에 어떤 값이 들어오든 항상 전체 데이터가 나오게 됩니다.

xxx님이 2009-03-04 14:58에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
28070입금처리 쿼리문에 관한 조언을 구합니다.
입금처리
2009-03-06
4606
28067원격 접속 질문 입니다.(초보) [2]
최명권
2009-03-05
5222
28066mysql 백업 복구시 한글 깨짐 문제입니다... [1]
김정석
2009-03-04
8143
28064[급질문] Mysql에서도 가능한지 여쭤보고 싶습니다. [4]
레미리버
2009-03-03
5071
28063[질문] mysql 에서 시퀀스의 NextVal을 구현하는 방안 [3]
김선아
2009-03-03
11575
28062초보 중복쿼리.. 답변부탁드려요..
이종근
2009-03-02
5053
28061delete로 테이블 전체를 날렸습니다. ㅠㅠ [3]
김진호
2009-03-02
4948
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다