CI 묻고 답하기

제목 mysql where절이 이상해요 ㅠㅠㅠ
글쓴이 하루살이 작성시각 2013/04/28 12:31:39
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 14524   RSS
SELECT mb_name,`mb_id`,mb_email,mb_hp
FROM (`ki_member`)
WHERE `mb_name` =  0
AND `mb_hp` =  '010-1234-1234'
AND `mb_email` =  0

이렇게 쿼리 날렸더니 글쎄

  mb_name mb_id mb_email mb_hp
      홍길동1 test@test.com test@test.com 010-1234-1234

이런 결과가 나왔습니다.

혹시 mysql 버그인가요?

버전은 MySQL client version: 5.1.55 입니다.

 다음글 이미지 처리 질문요!! (6)
 이전글 config 질문 입니다. (4)

댓글

꾸숑 / 2013/04/28 18:14:30 / 추천 0
//하루살이

아래처럼  하면 원하시는 답이 나올것 같네요
3가지 where문의 값이 모두 맞는 필드가 출력 될것입니다.

SELECT mb_name,`mb_id`,mb_email,mb_hp
FROM (`ki_member`)
WHERE `mb_name` = ' 0'
AND `mb_hp` = '010-1234-1234'
AND `mb_email` = ' 0'

  • SQL 표준에서 문자열은 항상 홑따옴표를 사용해서 표시합니다.
  • SELECT *FROM member WHERE id = 'd001';
  •  
  • 숫자는 따옴표 없이 숫자만 입력하면 됩니다.    
  • SELECT *FROM member WHERE no = 1111; 

즉 작성하신 쿼리문에서 0 은 숫자가 아닌 문자 입니다.
하루살이 / 2013/04/28 20:44:34 / 추천 0

@꾸숑님 근데 mb_name이 문자 '0' 으로 검색하면 당연히 검색결과가 없겠지만 숫자 0으로 검색해서 해당 조건이 무시되는건 잘못된거 아닌가요?

제가 궁금한건 숫자0으로 검색했는데 왜 값이 0이 아닌값도 출력되는지 궁금한거죠 널값도 아니고 ㅠㅠ

꾸숑 / 2013/04/28 22:29:15 / 추천 0
하루살이//
필드 타입이 int인경우 홑따옴표를 사용하지 않고요
즉 필드 타입 기준으로 생각하셔야 할것 같네요..

그리고 name필드 값이 숫자0 이면서 email필드 값이 숫자 0인 경우는 아~~주 드믄경우이네요^^