https://school.programmers.co.kr/learn/courses/30/lessons/59047
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드설명
LIKE 를 사용합니다. 추가로 LOWER + UPPER에 대해서도 알게되었습니다.
문제에서 대소문자 구분없이 검색한다는 의미를 듣고서 처음에 주어진 NAME을 LOWER나 UPPER를 사용해서 진행하려했습니다.
하지만 MYSQL에서는 자동으로 대소문자 구분없이 검색을 해줍니다.
그렇기에 단순히 검색하면 됩니다.
만약, LOWER와 UPPER를 확인할경우 아래와 같이 사용할 수 있습니다.
-- 코드를 입력하세요
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE ANIMAL_TYPE = 'Dog'
AND LOWER(NAME) LIKE '%el%'
# AND UPPER(NAME) LIKE '%EL%'
ORDER BY NAME ASC;
코드
-- 코드를 입력하세요
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE ANIMAL_TYPE = 'Dog'
AND NAME LIKE '%EL%'
ORDER BY NAME ASC;
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS AS AI
WHERE AI.NAME LIKE '%EL%'
AND ANIMAL_TYPE = 'DOG'
ORDER BY NAME ASC;
ORACLE
오라클에서는 대소문자 구분을 자동으로 합니다.
그렇기에, LOWER나 UPPER를 활용하여야만 합니다.
아래 코드에서는 'DOG'같은 경우는 'Dog'로 검색하면 굳이 UPPER를 사용안해도 됩니다.(당연히 안하는게 좋습니다)
SELECT AI.ANIMAL_ID, AI.NAME
FROM ANIMAL_INS AI
WHERE UPPER(AI.NAME) LIKE '%EL%'
AND UPPER(AI.ANIMAL_TYPE) = 'DOG'
ORDER BY AI.NAME ASC
아래의 경우는 정규표현식(REGULAR EXPRESSION), REGEXP_LIKE를 활용한 코드입니다.
SELECT AI.ANIMAL_ID, AI.NAME
FROM ANIMAL_INS AI
WHERE REGEXP_LIKE(AI.NAME, 'EL', 'i')
AND AI.ANIMAL_TYPE = 'Dog'
ORDER BY AI.NAME
'SQL > 프로그래머스' 카테고리의 다른 글
[SQL][프로그래머스] 부모의 형질을 모두 가지는 대장균 찾기 - INNER JOIN + BIT(&) MYSQL (0) | 2024.04.30 |
---|---|
[SQL][프로그래머스] 루시와 엘라 찾기 - IN + REGEXP_LIKE MYSQL ORACLE (0) | 2024.04.04 |
[SQL][프로그래머스] 동물 수 구하기 - COUNT MYSQL ORACLE (0) | 2024.04.04 |
[SQL][프로그래머스] 중복 제거하기 - DISTINCT + COUNT + IS NOT NULL MYSQL ORACLE (0) | 2024.04.03 |
[SQL][프로그래머스] 중성화 여부 파악하기 - CASE WHEN + LIKE MYSQL ORACLE (0) | 2024.04.03 |