본문 바로가기
DataBase/MYSQL

[MYSQL] MID/ SUBSTRING/ SUBSTR 함수 - 문자열 일부 가져오기

by 오늘은강박사갈거야~~ 2021. 5. 25.
반응형

MID/ SUBSTRING/ SUBSTR 함수

 

이 3가지 함수들은 MYSQL에서 문자열의 일부분을 가지고 오는 함수들입니다. 다른 함수 같지만,

모두 동일한 역할을 수행하고 사용법 또한 동일합니다.

 

MID = SUBSTR = SUBSTRING

 

  • MID/ SUBSTR/ SUBSTRING 함수: 지정된 문자열 중, 사용자가 원하는 위치에서부터 위치까지의 문자열을 가지고 오는 함수 

 

함수는 다음과 같이 사용합니다. 인수는 3가지로, 사용할 문자열을 기입하는 인수(String), 문자열을 가지고 오기 시작할 지점(Position), 가져올 길이(Length) 순서로 되어있습니다.

 

문자열의 위치를 선정할 때 일반적인 방법과 같이 왼쪽에서 1부터 세어 글자의 위치를 판단할 수 있지만, 

맨 마지막 문자열을 -1로 기준을 잡고 거꾸로 -1, -2, -3으로 문자열의 위치를 셀 수 있습니다. 이는 긴 문자열의 경우 왼쪽에서 세는 것보다 뒤에서 세는 것이 유리할 때 사용합니다. 아래 그림을 보시면 이해가 잘 되시리라 생각합니다.

 

SUBSTR/MID/SUBSTRING 모두 똑같이 사용할 수 있습니다!

[1] 사용 형태

 

1. 문자열 중 원하는 일부 출력

SELECT SUBSTR('table', 3, 2 ) # 왼쪽에서 3번째 문자열부터 2개를 가지고 오겠다.

-> 결과는
bl
SELECT MID('heorsofstorm', -5, 5 ) # 오른쪽에서 5번째 문자열부터 5개를 가지고 오겠다.

-> 결과는
storm

 

2. 열에게 일괄적으로 적용하기

 

ID_NUM NAME COUNTRY CITY
1 우서(남자) 대한민국 서울특별시
2 레이너(남자) 대한민국 부산광역시
3 발라(여자) 대한민국 인천광역시

table1

SELECT SUBSTRING(NAME,-4,2) # NAME 컬럼의 모든 문자열을 오른쪽에서 4번째(-4)에서 2개만 가지고 온다.
from table1 

-> 결과는
남자
남자
여자
SELECT MID(CITY, 1, 2) # COUNTRY 컬럼의 모든 문자열을 왼쪽 1번째 문자열에서 2개만 가지고 온다.
from table1

-> 결과는
서울
부산
인천

[2] 참고 사항

 

- SUBSTRING/MID/SUBSTR 모두 3가지 인수를 가진다고 알고 계십니다. 하지만 이렇게 쓴다면...?

SELECT MID('herosofstorm', 5)

이렇게 쓴다면 결과는 ofstorm가 나오게 됩니다. 즉, 5번째 숫자부터 끝까지 출력해라의 의미로

내가 문자열 추출 시작점을 지정한 뒤, 끝까지 출력하려면 굳이 3번째 인수는 입력할 필요가 없습니다. 

 

MID, SUBSTR 그리고 SUBSTRING 모두 동일합니다!

 

- 오류가 나는 경우

SELECT MID('herosofstorm', ,5) (X)

 

[3] 참고 자료

https://www.w3resource.com/mysql/string-functions/mysql-substr-function.php

 

MySQL SUBSTR() function - w3resource

MySQL SUBSTR() returns the specified number of characters from a particular position of a given string.

www.w3resource.com

 

반응형

댓글