[MySQL] 정규식활용

생각하는 마리오네트·2021년 9월 8일
0

SQL

목록 보기
10/39

정규식을 통해 쿼리문을 간단하게 짜는방법

문제)
Query the list of CITY names from STATION which have vowels (i.e., a, e, i, o, and u) as both their first and last characters. Your result cannot contain duplicates.

FieldType
IDNUMBER
CITYVARCHAR2(21)
STATEVARCHAR2(2)
LAT_NNUMBER
LONG_WNUMBER

핵랭 문제8번

나의 첫 풀이방법

SELECT DISTINCT(City) FROM Station
WHERE (City LIKE 'A%' OR City LIKE 'E%' OR City LIKE 'I%' OR City LIKE 'O%' OR City LIKE 'U%')
AND (City LIKE '%a' OR City LIKE '%e' OR City LIKE '%i' OR City LIKE '%o' OR City LIKE '%u');

위와 같은 방법으로 노가다를 했지만, 파이썬의 정규식이 나서 찾아보았고 SQL에서도 정규식 방법을 찾아본후 적용한 답안이 아래의 코드입니다.

SELECT CITY FROM STATION 
WHERE CITY REGEXP '^[AEIOU]' AND CITY REGEXP '[aeiou]$';

위와같이 정규식으로 훨씬 간단하게 풀 수 있다.
만약에 포함하지 않는다는것을 쓰고싶을때는 '[^AEIOU]' 를 사용해주면 된다.
하지만, 만약 시작을 모음으로 포함하지 않을경우 라면 '^[^AEIOU]'라고 해주어야한다.
그렇다면 끝을 모음으로 하지 않을경우는 '[^AEIOU]$' 이렇게 하면 됩니다.

SQL도 정규식을 잘 활용해보자!

profile
문제를해결하는도구로서의"데이터"

0개의 댓글