30대 갓생살기😍

반응형
# -- 코드를 입력하세요
# SELECT I.ANIMAL_ID, I.NAME,I.SEX_UPON_INTAKE
# FROM ANIMAL_INS I
# WHERE I.NAME IN ('Lucy','Ella','Pickle','Rogan','Sabrina','Mitty')
# ORDER BY ANIMAL_ID ASC;

SELECT I.ANIMAL_ID, I.NAME,I.SEX_UPON_INTAKE 
FROM ANIMAL_INS I
WHERE I.NAME REGEXP '^(Lucy|Ella|Pickle|Rogan|Sabrina|Mitty)$'
ORDER BY I.ANIMAL_ID ASC;
 

코딩테스트 연습 - 루시와 엘라 찾기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

해당 글은 Programmers 코딩테스트 연습을 토대로 MYSQL 로 작성되었습니다.

 


Q 문제: Lucy ~ Mitty 해당 동물의 이름이 포함되어 있는 동물 친구들을 찾아라. 

A 정답코드:

# -- 코드를 입력하세요
# SELECT I.ANIMAL_ID, I.NAME,I.SEX_UPON_INTAKE
# FROM ANIMAL_INS I
# WHERE I.NAME IN ('Lucy','Ella','Pickle','Rogan','Sabrina','Mitty')
# ORDER BY ANIMAL_ID ASC;

SELECT I.ANIMAL_ID, I.NAME,I.SEX_UPON_INTAKE 
FROM ANIMAL_INS I
WHERE I.NAME REGEXP '^(Lucy|Ella|Pickle|Rogan|Sabrina|Mitty)$'
ORDER BY I.ANIMAL_ID ASC;

REGEXP 정규표현식

Regular Expression의 약자로  문자열을 처리하는 방법 중의 하나로 특정한 조건의 문자를 '검색'하거나 '치환'하는 과정을 매우 간편하게 처리 할 수 있도록 하는 수단이다. 

# -- 코드를 입력하세요

# 컬럼명 중 Lucy ~ Mitty 가 포함된 모든 이름을 조회 
WHERE I.NAME REGEXP 'Lucy|Ella|Pickle|Rogan|Sabrina|Mitty'

# 컬럼명 중 Lucy ~ Mitty 일치하는 이름을 조회 
WHERE I.NAME REGEXP '^(Lucy|Ella|Pickle|Rogan|Sabrina|Mitty)$'

 1:1 매칭이 되려면 시작에는 ^ 끝에는 $를 붙여줘야한다.

그렇지않고 위처럼 쿼리문을 작성한다면 LLLucy, Ellaaaa 와 같은 이름이 존재한다면 모두 출력이 될것이다.

 

표현식 의미
^ 문자A 문자열의 시작을 표현   (설명) 문자 A로 시작되는 문자 조회
   문자A & 문자열의 끝을 표현      (설명) 문자 A로 끝나는 문자 조회 
^ 문자A문자B & (설명) 문자A로 시작하며 문자B로 끝나는 문자 조회
문자A | 문자 B OR을 의미하며 문자 A와 문자 B를 포함하는 문자를 조회 

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading