본문 바로가기

데이터베이스

Like 대소문자 비교

#SQL 문을 연습하자 #Programmers

ORM을 사용해서 SQL문과 멀어졌는 데,
내가 사용하는 ORM 쿼리 문이 효율적인지 잘 알기 위해서
소소하게 연습하기로 했다 

일단 알고 있는 문제 사이트는 Programmers 밖에 없어서 Programmers 문제들을 모두 풀어보는 것을 첫걸음으로!


 

코딩테스트 연습 - 이름에 el이 들어가는 동물 찾기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

 

SELECT ANIMAL_ID, NAME FROM ANIMAL_INS 
WHERE UPPER(NAME) 
LIKE '%EL%' AND ANIMAL_TYPE = 'Dog' 
ORDER BY NAME;

 

MYSQL & ORACLE 모두 동일하다.

ORACLE REGEXP_LIKE 로도 할 수 있다.
그렇지만 간단한 LIKE에 비해 복잡한 정규식 매칭을 위한 함수인만큼 성능은 LIKE 가 더 빠르다.

REGEXP_LIKE is similar to the LIKE condition, except REGEXP_LIKE performs regular expression matching instead of the simple pattern matching performed by LIKE.

UPPER 대신 LOWER 을 써서 소문자 단어와 비교해도 되고, 만약 대소문자가 섞인 단어와 비교해야 하면 비교하는 문자도 UPPER 또는 LOWER를 사용하면 된다.  LOWER('%eL%') 이런 식으로.


끝!