본문 바로가기
DB/문제풀이

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

by 쬑께께 2023. 1. 2.

루시와 엘라 찾기 문제는 다음과 같다.

 

 

이번 문제를 풀기 위해선

1. 동물의 아이디, 이름, 성별 및 중성화 여부 출력

2. 이름이  Lucy, Ella, Pickle, Rogan, Sabrina, Mitty일 경우 출력

3. 아이디를 기준으로 정렬

순으로 접근해야한다.

 

 

우선은 동물의 아이디와 이름, 성별 및 중성화 여부를 출력시키겠다.

 

 

 

 

다음으로는 이름이

 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty일 경우 출력되도록 

조건을 걸어주겠다.

 

이름이 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty일 경우 

출력하라고 하였으니 LIKE 명령어문을 통해 출력시킨다면

OR 연산자를 통해 조건을 연결해주어야 한다.

 

 

그러나 현재 조건으로 걸어줘야하는 이름이 많으니

간단하게 IN 명령어를 통해 출력시키겠다.

LIKE 명령어와 OR연산자를 사용한 경우

 

 

마지막으로 아이디를 기준으로 정렬해주겠다.

내림차순으로 정렬하란 말이 없었으니

오름차순이라 짐작하고 풀어보겠다.

 

 

 

이제 정답인지 확인해보겠다.

정답이다.

 

 

 

 

 

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

 

굉장히 독특한 글을 발견해 한번 실험해 보았다.

 

보통 컬럼에 특정 문자열이 있는지 검색할 때

컬럼명 LIKE CONCAT('%', '검색할 문자열', '%')

형식으로 사용하는데 

이걸 역으로 사용해

특정 문자열 안에 컬럼값이 있는지 확인할 수 있다는 글을 발견했다.

 

그래서 실제로 되는지 확인해 보았다!!

 

이렇게

검색할 문자열 LIKE CONCAT('%', 컬럼명, '%')순으로 

입력해주었다.

 

 

이제 결괏값이 같은지 확인해보겠다.

IN 명령어를 통해 실행한 결과

 

LIKE CONCAT을 통해 실행한 결과

 

 

이렇게 똑같은 결과를 출력하는 모습을 볼 수 있었다.

 

 

결과적으로

검색할 문자열 LIKE CONCAT('%', 컬럼명, '%')

순으로 쿼리문을 작성해 실행시켜도 쿼리문이 잘 돌아가며

특정 문자열 안에 컬럼값이 있는지 확인할 수 있었다.