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

+ Recent posts