LIKE 조회시 숫자를 와일드로 조회 되는경우가 궁금합니다. 0 1 4,657

by 손님 like [2008.09.08 16:09:58]


쿼리는 아래와 같습니다.

SELECT * FROM                                                                                   
  ( SELECT
      DISTINCT abc
      FROM aaa                                                                   
      WHERE abc LIKE 'K9_'
   ) A,
 bbb B                                                                        
  WHERE A.abc LIKE B.abc

서브에서 'K9_' 로 조회 해서 나온 aaa테이블에 abc칼럼값을 찾아서

bbb테이블의 abc칼럼의 값을 라이크 조인하여 가져오고 있습니다.

여기서   WHERE abc LIKE 'K9_' 이 부분이 궁금한데요

조건값으로 'k9_' 를 주면 bbb테이블의  'k__' 값이 조회됩니다 왜 이게 나오는지 모르겠습니다.

저는 라이크하면 'k9' 로 시작하는 값만 나올줄 알고 조회 걸었는데...

"9" 가 들어있는 자리도 "_" 언더바 취급해서

'k__'가 나와서요 원래 그런건가요?

이걸 없애는거야 어찌 어찌 하면 되겠지만 저는 지금까지 'k9' 로 시작해서 한자리 더있는것만 나온다고

알고있었는데 'k__'가 나와서 당황해서 질문드립니다.

by 마농 [2008.09.08 16:23:49]
b테이블을 LIKE 로 조회해서 그래요. 이퀄로 조회하세요.
서브쿼리에선 당연히 'k__'는 안나옵니다. 'k91'등이 나오겠죠.
메인쿼리의 like문을 실제값으로 변경해보시면 이해가 빠를거에요.
WHERE 'k91' LIKE 'k__' ===> 참이 됩니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입