문자열을 자를 때 사용하는 함수
MySQL에서 문자열의 일부분만 추출하고 싶을 때는 SUBSTR() 또는 SUBSTRING() 함수를 사용
두 함수는 동일한 동작을 하기 때문에 아무거나 사용해도 됨
SUBSTR(str, pos)
SUBSTR(str FROM pos)
SUBSTRING(str, pos)
SUBSTRING(str FROM pos)
문자열
str의 pos 위치부터 끝까지 잘라서 반환
FROM 구문을 써도 결과는 동일SELECT SUBSTR('Hello', 1); -- 'Hello'
SELECT SUBSTR('Hello' FROM 1); -- 'Hello'
SELECT SUBSTR('Hello', 0); -- ''
SELECT SUBSTRING('Hello' FROM 0); -- ''
pos = 0이면 빈 문자열을 리턴합니다.pos가 음수이면 문자열의 끝에서부터 센다는 뜻입니다.
SELECT SUBSTR('Hello', -3); -- 'llo'
SELECT SUBSTRING('Hello' FROM -3); -- 'llo'
-3은 오른쪽에서 세어서 3번째 글자인 'l'부터 끝까지 자릅니다.SUBSTR(str, pos, len) SUBSTR(str FROM pos FOR len)
문자열 str을 pos 위치에서 len 길이만큼 잘라 반환
SELECT SUBSTR('Hello', 2, 2); -- 'el'
SELECT SUBSTRING('Hello' FROM 2 FOR 2); -- 'el'
'Hello'의 2번째 문자 'e'부터 2글자 → 'el'SELECT SUBSTR('Hello', -2, 2); -- 'lo'
SELECT SUBSTRING('Hello' FROM -2 FOR 2);-- 'lo'
'l'부터 2글자 → 'lo'| 입력 예시 | 결과 | 설명 |
|---|---|---|
SUBSTR('Hello', 1) | 'Hello' | 처음부터 끝까지 자름 |
SUBSTR('Hello', 0) | '' | 0은 유효하지 않음 |
SUBSTR('Hello', -3) | 'llo' | 뒤에서 3번째부터 끝까지 자름 |
SUBSTR('Hello', 2, 2) | 'el' | 2번째부터 2글자 |
SUBSTR('Hello', -2, 2) | 'lo' | 뒤에서 2번째부터 2글자 |