[프로그래머스] SQL/정답 노트

[lv2] 이름에 el이 들어가는 동물 찾기

SH3542 2024. 10. 18. 21:30

LIKE는 기본적으로 대소문자를 구분하지 않고 비교를 수행하나, 이는 사용중인 정렬 규칙에 따라 달라진다.

e.g. utf8_general_ci에서 ci는 "case insensitive"를 의미하여 대소문자를 구분하지 않는 정렬을 나타냄

 

1. 오답

SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE NAME COLLATE utf8_bin LIKE '%el%' AND ANIMAL_TYPE = 'Dog'
ORDER BY NAME

 

2. 정답

SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE NAME COLLATE utf8_general_ci LIKE '%el%' AND ANIMAL_TYPE = 'Dog'
ORDER BY NAME

 

 

프로그래머스 환경에서는 기본적으로 구분하지 않으나, 고려하여 작성하는게 좋을 것 같다.

SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE LOWER(name) LIKE '%el%' AND ANIMAL_TYPE = 'Dog'
ORDER BY NAME