[MYSQL] 문자열 추출 : SUBSTR, SUBSTRING
2023. 4. 21. 18:38ㆍ개발공부 기강잡자/SQL
문자열 컬럼에서 원하는 길이로 문자열을 추출하는 함수
SUBSTR, SUBSTRING - 동일한 함수라 둘 중 아무거나 사용해도 된다.
SUBSTR(str, pos), SUBSTR(str FROM pos)
, SUBSTRING(str, pos), SUBSTRING(str FROM pos)
, SUBSTRING(str, pos), SUBSTRING(str FROM pos)
: 문자열 str
의 pos
부터 끝까지의 문자열을 리턴한다.
pos
는 1부터 시작한다.
SELECT SUBSTR('Hello', 1)
SELECT SUBSTR('Hello' FROM 1)
SELECT SUBSTRING('Hello', 1)
SELECT SUBSTRING('Hello' FROM 1)
결과 : 'Hello'
→ 문자열 'Hello'
의 1번째부터 끝까지 추출
pos
가 0이면 공백 문자열을 리턴한다.
SELECT SUBSTR('Hello', 0)
SELECT SUBSTR('Hello' FROM 0)
SELECT SUBSTRING('Hello', 0)
SELECT SUBSTRING('Hello' FROM 0)
결과 : ''
pos가 음수면 문자열의 끝에서 부터 인덱스를 센다.
SELECT SUBSTR('Hello', -3)
SELECT SUBSTR('Hello' FROM -3)
SELECT SUBSTRING('Hello', -3)
SELECT SUBSTRING('Hello' FROM -3)
결과 : 'llo'
→ 문자열 'Hello'
의 뒤에서 3번째부터 끝까지 추출
✔️ -3 : 문자열의 오른쪽부터 3번째 인덱스
SUBSTR(str, pos, len), SUBSTR(str FROM pos FOR len)
, SUBSTRING(str, pos, len), SUBSTRING(str FROM pos FOR len)
, SUBSTRING(str, pos, len), SUBSTRING(str FROM pos FOR len)
: 문자열 str
을 pos
의 위치에서 len
길이 만큼 추출
SELECT SUBSTR('Hello', 2, 2)
SELECT SUBSTR('Hello' FROM 2 FOR 2)
SELECT SUBSTRING('Hello', 2, 2)
SELECT SUBSTRING('Hello' FROM 2 FOR 2)
결과 : 'el'
→ 문자열 'Hello'
의 2번째 문자부터 2개의 문자 추출
SELECT SUBSTR('Hello', -2, 2)
SELECT SUBSTR('Hello' FROM -2 FOR 2)
SELECT SUBSTRING('Hello', -2, 2)
SELECT SUBSTRING('Hello' FROM -2 FOR 2)
결과 : 'lo'
→ 문자열 'Hello'
의 뒤에서 2번째 문자부터 2개의 문자 추출
참고 : https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_substr
'개발공부 기강잡자 > SQL' 카테고리의 다른 글
[MYSQL] 조건문 - IF문 (프로그래머스_자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기) (0) | 2023.04.23 |
---|---|
[MYSQL] 프로그래머스_자동차 대여 기록 별 대여 금액 구하기 (DATEDIFF/CASE WHEN/PIVOT) (0) | 2023.04.22 |
[MySQL] Date Format 변환 (0) | 2023.04.10 |
[MySQL] 프로그래머스_서울에 위치한 식당 목록 출력하기 (0) | 2023.04.10 |