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 30066 게시물 읽기
No. 30066
이상한 현상에 대해서 질문 드릴께요
작성자
김용덕(srookie)
작성일
2011-10-05 10:10
조회수
7,619

안녕하세요.

MYSQL로 쿼리문을 작성하다가 실수로 조건절의 VARCHAR Field의 값을 0으로 쿼리를 했는데요

모든 데이터가 다 나오네요.

ex) select * from temp

where name = 0

name은 varchar 필드입니다.

MYSQL에서는 위의 쿼리 문장을 어떻게 받아들여서 실행하길래

이런 현상이 일어나는 것인가요?

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

추측컨데...

 

create table temp(name varchar(10));

insert into temp (name) values('a'), ('b'), ('1'), ('0'), (''), (null);

 

그런다음..

select * from temp where temp = 0

+------+
| name |
+------+
| a    |
| b    |
| 0    |
|      |
+------+
 

이런 형태네요. 숫자면 0에 대한 부분이 convert되는 듯하고 그외는 is not null에 대한 조건을 처리하는 듯하네요

.님이 2011-10-05 14:12에 작성한 댓글입니다. Edit

varchar 나 char 타입에서 0 과의 비교는 not null ( null 의 반대) 에 대한 boolean 값을 비교합니다.

1님이 2011-10-05 16:33에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
30069JOIN 관련 문의 드립니다. 머리가 터지려고 하네요.. ㅡㅡ;; [1]
김상묵
2011-10-11
7991
30068double형 문제 - 간단하니 테스트라도 부탁드립니다.
박종선
2011-10-10
7398
30067재고 계산에 대해 질문드립니다ㅜㅜ [3]
sleee
2011-10-10
7516
30066이상한 현상에 대해서 질문 드릴께요 [2]
김용덕
2011-10-05
7619
30064update a set [1]
김양훈
2011-09-30
7964
30063Control center에서 테이블복사. [3]
이기자
2011-09-26
7520
30062이력관리 필드에 내용 추가를 하고 싶습니다. [1]
장기정
2011-09-21
7531
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.026초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다