etc

[MySQL] 부분 문자열 함수 (LEFT, RIGHT, SUBSTRING)

조부장 2020. 9. 24. 17:58

MySQL에서 부분 문자열을 가져오는 함수인 LEFT, RIGHT, SUBSTRING에 대해 알아봅시다.

 

LEFT

LEFT(str, len)

str: 문자열
len: 가져올 문자의 개수

문자열 str에서 왼쪽부터 len 만큼 문자열을 가져옵니다.

mysql> SELECT LEFT('abcdefg', 5);
        -> 'abcde'

예제입니다. 왼쪽부터 다섯글자를 가져온 모습입니다.

 

RIGHT

RIGHT(str, len)

str: 문자열
len: 가져올 문자의 개수

문자열 str에서 오른쪽부터 len 만큼 문자열을 가져옵니다.

mysql> SELECT RIGHT('abcdefg', 3);
        -> 'efg'

문자열 'abcdefg'에서 오른쪽 세글자를 가져온 예제입니다

 

SUBSTRING

부분 문자열, 즉 서브스트링(substring)을 가져오는 함수가 SUBSTRING인데요, 이 함수는 여러 동의어(synonym)가 존재합니다. 각 동의어마다 사용법이 조금씩 다른데 결과는 같으니 편한거 아무거나 쓰면 됩니다.

1. SUBSTRING

SUBSTRING(str, pos)
SUBSTRING(str FROM pos)
SUBSTRING(str, pos, len)
SUBSTRING(str FROM pos FOR len)

str: 문자열
pos: 문자열 가져오기 시작할 위치 (1부터 시작)
len: 가져올 문자의 개수

문자열 str의 pos부터 len 길이만큼의 문자열을 가져옵니다. len이 주어지지 않은 경우는 문자열 끝까지 갖고옵니다.

이때 pos는 음수도 가능합니다. 음수를 사용하는 경우 뒤에서부터 pos부터 문자열을 가져옵니다.

mysql> SELECT SUBSTRING('Quadratically', 5);
        -> 'ratically'
mysql> SELECT SUBSTRING('foobarbar' FROM 4);
        -> 'barbar'
mysql> SELECT SUBSTRING('Quadratically', 5, 6);
        -> 'ratica'
mysql> SELECT SUBSTRING('Sakila', -3);
        -> 'ila'
mysql> SELECT SUBSTRING('Sakila', -5, 3);
        -> 'aki'
mysql> SELECT SUBSTRING('Sakila' FROM -4 FOR 2);
        -> 'ki'

여러개의 예제입니다. pos는 1부터 시작합니다. 음수의 경우 -1부터 시작합니다.

2. SUBSTR

SUBSTR(str, pos)
SUBSTR(str FROM pos)
SUBSTR(str, pos, len)
SUBSTR(str FROM pos FOR len)

SUBSTR은 SUBSTRING의 동의어입니다. 사용법은 SUBSTRING과 같습니다.

3. MID

MID(str, pos, len)

MID(str, pos, len)은 SUBSTRING(str, pos, len)의 동의어입니다.

반응형