코딩테스트

[프로그래머스] [SQL] 루시와 엘라 찾기

히그다스 2024. 1. 11. 15:49

 

 

왠지 고난이 많았던 오늘 문제

 

우선 아이디별로 정렬하라는게 문제 밑에 예시쪽에 있어서 못봤다

 

 

 

 

LIKE를 쓰니 제대로 안되는거 같아 서치 시작

 

REGEXP를 찾았다

 

제대로 넣었는데도 자꾸 오답으로 나오기 시작

 

질문하기를 들어가서 코드는 안보고 제목만 보며 힌트를 얻었다

 

IN으로 해결 → 하지만 REGEXP를 썼을 때와 결과 테이블은 똑같은데 왜? 라는 의문

 

REGEXP는 좀더 섬세하기 때문에 제대로 시작과 끝을 지정해주지 않으면

문자열이 들어간 모든 것을 가져온다는 것을 늦게 알았다

 

 

 

 

결과적으로 답은 두가지인데

 

1. REGEXP를 사용한 쿼리

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

 

 

2. IN을 사용한 쿼리

SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty')
ORDER BY ANIMAL_ID ASC;

 

 

난 IN도 처음 알아서 잘 공부해놔야겠다 싶었다

 

아직도 공부할 것이 많구만!

 

 


 

출처: 프로그래머스

참고: https://hansuho113.tistory.com/59 , https://school.programmers.co.kr/questions/7677