[MySQL: BASIC] 맨앞/맨끝 특정 문자가 있는/없는 값만 추출하기

1 minute read

SQL 쿼리 예시

 1-- 맨 끝에 특정 문자 오는 값만 추출
 2SELECT DISTINCT CITY FROM STATION 
 3WHERE RIGHT(CITY,1) IN ('a','i','e','o','u');
 4
 5SELECT DISTINCT CITY FROM STATION 
 6WHERE CITY REGEXP '[aeiou]$'
 7
 8-- 양쪽 끝에 특정 문자 오는 값만 추출
 9SELECT DISTINCT CITY FROM STATION
10WHERE LEFT(CITY, 1) IN ('a', 'e', 'i', 'o', 'u') 
11       AND RIGHT(CITY, 1) IN ('a', 'e', 'i', 'o', 'u');
12
13SELECT DISTINCT CITY FROM STATION 
14WHERE CITY RLIKE '^[aeiou].*[aeiou]$'
15
16-- 특정 문자로 시작하지 않는 값만 추출
17SELECT DISTINCT CITY FROM STATION
18WHERE CITY REGEXP '^[^aeiou]';
19
20-- 특정 문자로 끝나지 않는 값만 추출
21SELECT DISTINCT CITY FROM STATION
22WHERE CITY NOT REGEXP '[aeiou]$'

Regular Expression

 1-- [] (Square bracket): 문자들의 모음
 2WHERE CITY REGEXP '[aeiou]'
 3
 4-- $ (Dollar sign): 맨끝을 나타낸다. x$라고 하면 x로 끝나는 것을 표현한다. 
 5WHERE CITY REGEXP '[aeiou]$'
 6WHERE CITY NOT REGEXP '[aeiou]$'
 7
 8-- ^ (Caret): $와는 반대로 맨앞을 나타낸다. ^x라고 하면 x로 시작하는 것을 표현한다.
 9WHERE CITY RLIKE '^[aeiou]'
10
11-- [^] (Negative character set) : [] 안의 값을 제외한 것을 의미
12WHERE CITY REGEXP '^[^aeiou]'
13
14-- . (Dot): \n을 제외한 모든 문자
15WHERE CITY RLIKE '^[aeiou].*[aeiou]$'
16
17-- * (Multiply sign): 반복문자
18WHERE CITY RLIKE '^[aeiou].*[aeiou]$'