코딩테스트 준비 (알고리즘 & SQL)/SQL 문제

[프로그래머스] 보호소에서 중성화한 동물 (MySQL)

혼다 2024. 8. 13. 18:46
참고: 문제 링크 보호소에서 중성화한 동물

 

[ MySQL ] 정규식 이용하여 풀이

SELECT
  INS.ANIMAL_ID,
  INS.ANIMAL_TYPE,
  INS.NAME
FROM
  ANIMAL_OUTS AS OUTS
  INNER JOIN ANIMAL_INS AS INS ON INS.ANIMAL_ID=OUTS.ANIMAL_ID
WHERE
  OUTS.SEX_UPON_OUTCOME REGEXP '^Spayed|^Neutered'
  AND INS.SEX_UPON_INTAKE REGEXP '^Intact'
ORDER BY
  INS.ANIMAL_ID;
  1. 입양 된 동물들 중에서 찾아야 하므로 먼저, FROM절에 ANIMAL_OUTS 설정
  2. 조건 설정 (정규식 사용)
    1. `OUTS.SEX_UPON_OUTCOME REGEXP '^Spayed|^Neutered'`
      보호소에서 나갈 때는 중성화 상태여야 하므로, `^Spayed`(=Spayed 으로 시작) `|`(=하거나, OR) `^Neutered`(=Neutered으로 시작)
    2. `INS.SEX_UPON_INTAKE REGEXP '^Intact'`
      보호소에 들어왔을 때는 중성화 되지 않은 상태여야 하므로 `^Intact`(=Intact 으로 시작)
  3. 정렬 (동물 아이디 작은 순서대로)