• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

WHERE절에서 문자를 활용해서 검색할 때요! (비교연산자나 BETWEEN, IN))

22.05.29 15:39 작성 조회수 486

0

안녕하세요! 강의 너무 잘 듣고 있습니다.

저는 문자열 데이터 관련해서 세가지 질문이 있습니다. 

1. WHERE 절이나 BETWEEN, IN을 활용해서 문자열 데이터를 추출하려고 할 때 문자열 전체가 아니라 'A'와 같이 문자 하나만 입력하게 되면 맨 앞 문자를 기준으로 데이터가 나오게 되는건가요?

예를 들어 다음과 같은 경우가 궁금합니다! 

  • WHERE CustomerName < ‘B’
    • 강의에서 '손님이름이 A로 시작하는 데이터를 모두 불러온다'라고 설명해주셨습니다.
  • WHERE CustomerName BETWEEN 'C' AND ‘M’
    • WHERE 절 요약 파일에서 가져왔습니다. 직접 해보니 C와 M 사이 알파벳으로 시작하는 데이터가 추출되네요!
  • WHERE CustomerName IN (‘B’, 'C')
    • IN의 경우에는 이렇게도 활용이 가능한가요?

2. %나 _와 같은 와일드 카드, 한 글자 와일드 카드는 LIKE랑만 사용할 수 있나요?

3. 숫자를 활용해서 데이터를 추출하고 싶을 때 '숫자' 이렇게 넣어 문자열을 활용해도 되나요? 뒤에 해커랭크 두번째 문제를 푸는데  where id = '1661' 이렇게 넣어도 답이 맞더라구요!

답변 1

답변을 작성해보세요.

1

1. MySQL에서 문자열에도 알파벳 순서 기반으로 >, BETWEEN 등의 명령어를 지원하고 있어 말씀하신대로 범위 지정이 가능합니다. 

IN은 위 명령어들과 성격이 약간 다릅니다.
WHERE 컬럼 IN ( ) 은 컬럼의 값이 괄호 안에 들어가는 문자열들과 정확히 일치하는 경우만 찾으라는 의미입니다.
그래서 WHERE CustomerName IN ('B', 'C') 를 써 주면 B와 C로 시작하는 데이터가 모두 추출되는 것이 아니라 정확히 B 또는 C 라는 값을 가지는 데이터만 추출됩니다.

 

2. LIKE 와만 사용하는 것이 맞습니다. 1번에서 설명한 이유 때문에 IN 과는 함께 사용할 수 없습니다.
비슷한 질문을 하신 분이 계셔서 답변 링크 첨부 드리니 참고해 보세요!

 

3. 숫자 조건은 ' ' 안에 넣어도, 넣지 않아도 됩니다. 
참고로 문자 조건은 ' '를 꼭 함께 써 주셔야 합니다.

이채홍님의 프로필

이채홍

질문자

2022.06.07

친절한 답변 감사합니다 : )
1번 질문 관련해서는 답변해주신대로 알파벳 순서 기반으로 >, BETWEEN 등의 명령어를 지원하고 있군요. 이 부분은 알파벳말고 한글이나 다른 언어도 지원을 하나요?

다른 언어는 어떨지 모르겠으나 한글은 지원을 하네요.
혹시 다른 언어로 된 데이터가 있는 DB를 접하게 되시면 테스트 해 보시는 것도 좋을 것 같아요!

이채홍님의 프로필

이채홍

질문자

2022.07.02

네! 답변 감사합니다~