[MySQL] 문자열 추출하기, SUBSTRING, SUBSTR

    오라클에도 존재하듯, MySQL에도 SUBSTRING 기능이 존재한다.

    이 SUBSTRING은 거의 모든 언어나 DBMS에 자체적으로 내장이 되어 있고, 사용방법도 비슷하다.

    SUBSTR이라고 써도 되고, SUBSTRING으로 써도 된다. 둘은 완전히 동일하다.




    사용방법

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



    1. 인자값 설명


     str 

     원본 문자열

     pos

     시작 위치값

     len

     가져올 길이값



    2. 사용사례


    SUBSTR(str, pos)


    SELECT SUBSTR('동해물과백두산이',5);

    결과) 백두산이

    해석) 5번째 문자열부터 읽으시오.


    SUBSTR(str FROM pos)


    SELECT SUBSTRING('동해물과백두산이' FROM 5);

    결과) 백두산이

    해석) 5번째 문자열부터 읽으시오.


    SUBSTR(str,pos,len)


    SELECT SUBSTRING('동해물과백두산이',3,4);

    결과) 물과백두

    해석) 3번째 문자열부터 읽으시고, 4글자만 가져오시오.


    SUBSTR(str FROM pos FOR len)


    SELECT SUBSTRING('동해물과백두산이' FROM 3 FOR 4);

    결과) 물과백두

    해석) 3번째 문자열부터 읽으시고, 4글자만 가져오시오.


    pos를 양수만 쓸 수 있는 것이 아니라, 음수로도 쓸 수 있다. 음수로 쓰게 되면 끝에서 부터 체크한다.

    예를 들어, "동해물과" 라는 값에서 -2를 주면, "물"이라는 값부터 읽는다.


    pos를 마이너스를 준 사례는 아래와 같다.






    SUBSTR(str, pos)


    SELECT SUBSTR('동해물과백두산이',-4);

    결과) 백두산이

    해석) 뒤에서 4번째 문자열부터 읽으시오.


    SUBSTR(str FROM pos)


    SELECT SUBSTR('동해물과백두산이' FROM -4);

    결과) 백두산이

    해석) 뒤에서 4번째 문자열부터 읽으시오. 


    SUBSTR(str,pos,len)


    SELECT SUBSTRING('동해물과백두산이',-6,4);

    결과) 물과백두

    해석) 뒤에서 6번째 문자열부터 읽으시고, 4글자만 가져오시오,


    SUBSTR(str FROM pos FOR len)


    SELECT SUBSTRING('동해물과백두산이' FROM -6 FOR 4);

    결과) 물과백두

    해석) 뒤에서 6번째 문자열부터 읽으시고, 4글자만 가져오시오,


    댓글

    Designed by JB FACTORY