WHERE절에서 문자를 활용해서 검색할 때요! (비교연산자나 BETWEEN, IN))
904
3 asked
안녕하세요! 강의 너무 잘 듣고 있습니다.
저는 문자열 데이터 관련해서 세가지 질문이 있습니다.
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' 이렇게 넣어도 답이 맞더라구요!
Answer 1
1
1. MySQL에서 문자열에도 알파벳 순서 기반으로 >, BETWEEN 등의 명령어를 지원하고 있어 말씀하신대로 범위 지정이 가능합니다.
IN은 위 명령어들과 성격이 약간 다릅니다.
WHERE 컬럼 IN ( ) 은 컬럼의 값이 괄호 안에 들어가는 문자열들과 정확히 일치하는 경우만 찾으라는 의미입니다.
그래서 WHERE CustomerName IN ('B', 'C') 를 써 주면 B와 C로 시작하는 데이터가 모두 추출되는 것이 아니라 정확히 B 또는 C 라는 값을 가지는 데이터만 추출됩니다.
2. LIKE 와만 사용하는 것이 맞습니다. 1번에서 설명한 이유 때문에 IN 과는 함께 사용할 수 없습니다.
비슷한 질문을 하신 분이 계셔서 답변 링크 첨부 드리니 참고해 보세요!
3. 숫자 조건은 ' ' 안에 넣어도, 넣지 않아도 됩니다.
참고로 문자 조건은 ' '를 꼭 함께 써 주셔야 합니다.
0
친절한 답변 감사합니다 : )
1번 질문 관련해서는 답변해주신대로 알파벳 순서 기반으로 >, BETWEEN 등의 명령어를 지원하고 있군요. 이 부분은 알파벳말고 한글이나 다른 언어도 지원을 하나요?
WHERE절에 LIKE문법을 IN으로 묶어서 사용
0
45
1
수강기간 변경 요청
0
94
2
Revising the Select Query 1 문제에서 질문입니다.
0
65
1
SQL제대로 공부하고 싶어서 수강했는데 SQLD시험에도 효과적일까요?
0
83
1
수강기한
0
95
2
해커랭크 문제풀이 처음부터 난이도 높아서 틀렸는데요.
0
75
2
OR 조건 간소화
0
47
1
Weather Observation Station 6 쿼리가 틀렸다고 나오는 이유를 모르겠어요
0
60
1
비교연산자 질문
0
45
1
HackerRank 진행 도와주세요
0
105
2
Weather Observation Station 12에서 Wrong Answer이 뜹니다.
0
71
2
섹션 3 . 10 . 질문있습니다
0
77
1
Weather Observation Station 12 질문
0
59
1
COLUMN에 대해 이해 안됨
0
112
2
수업 ppt 강의안 자료
0
183
2
SELECT * FROM city; 질문입니다
0
135
2
CEIL, FLOOR 함수 질문
1
359
2
w3schools 에러
1
207
2
Weather Observation Station 12 IN변환 및 관련 질문
0
144
1
해커랭크 Employee Salaries 문제 질문
0
126
1
해커랭크 문제풀이 1 에서
0
130
1
SELECT는 뭘 불러오는거고 FROM 은 뭘불러오는건가요
-1
193
1
해커랭크 문제풀이 중
0
102
1
Revising the Select Query 1 문제가 약간 바뀌었어요
0
158
2

