개발이야기/MySQL

[MySQL] 문자열 자르기 사용법, 예제 (SUBSTRING, LEFT, RIGHT)

후린개발자 2023. 7. 20.
반응형

문자열을 자르는 방법은 다양한 함수를 사용하여 수행할 수 있습니다.
가장 일반적인 함수로는 SUBSTRING과 LEFT, RIGHT 함수가 있습니다. 아래에서 각 함수의 사용법과 예제를 설명하겠습니다.

 

1. SUBSTRING 함수

SUBSTRING(str, start, length);

문자열 str의 특정 위치부터 지정한 길이인 length만큼의 문자열을 반환합니다. start는 문자열의 시작 위치를 나타내며, 첫 문자를 1로 시작하여 셉니다.

SELECT SUBSTRING('Hello, World!', 1, 5); -- 출력: 'Hello'
SELECT SUBSTRING('Hello, World!', 8);    -- 출력: 'World!'

 

2. LEFT 함수

LEFT(str, length);

문자열 str의 왼쪽에서부터 지정한 길이인 length만큼의 문자열을 반환합니다.

SELECT LEFT('Hello, World!', 5); -- 출력: 'Hello'

 

3. RIGHT 함수

RIGHT(str, length);

문자열 str의 오른쪽에서부터 지정한 길이인 length만큼의 문자열을 반환합니다.

SELECT RIGHT('Hello, World!', 6); -- 출력: 'World!'

 

4. 다양한 예제

  • 특정 문자열 기준으로 자르기
-- 특정 문자 기준으로 앞의 문자열 자르기 (출력 : APPLE)
SELECT SUBSTRING('APPLE_BANANA', 1, LOCATE('_', 'APPLE_BANANA') - 1);

-- 특정 문자 기준으로 뒤의 문자열 자르기 (출력 : BANANA)
SELECT SUBSTRING('APPLE_BANANA', LOCATE('_', 'APPLE_BANANA') + 1);

LOCATE 함수를 통해 특정문자(_)가 나타나는 위치를 반환해서 1을 뺍니다. 이 결과 APPLE_BANANA 문자열에서 특정문자(_) 이전의 문자열의 위치를 구할 수 있습니다. (앞의 문자열 자르기 설명)

 

  • 이메일 주소에서 도메인만 추출하기
-- 출력결과 (ddd.net)
SELECT 
    SUBSTRING('ddddd@ddd.net', LOCATE('@', 'ddddd@ddd.net') + 1) AS domain
FROM 
    dual;

 

  • URL에서 프로토콜과 서브도메인을 제외한 도메인과 경로만 추출하기
-- 출력결과 (jh-tr.tistory.com)
SELECT 
    SUBSTRING('https://jh-tr.tistory.com', LOCATE('://', 'https://jh-tr.tistory.com') + 3, 
          IF(LOCATE('/', 'https://jh-tr.tistory.com', LOCATE('://', 'https://jh-tr.tistory.com') + 3) > 0, 
                LOCATE('/', 'https://jh-tr.tistory.com', LOCATE('://', 'https://jh-tr.tistory.com') + 3) - (LOCATE('://', 'https://jh-tr.tistory.com/') + 3),
                CHAR_LENGTH('https://jh-tr.tistory.com') - (LOCATE('://', 'https://jh-tr.tistory.com') + 2)
             )) AS domain_and_path
FROM 
    dual
반응형

댓글

💲 추천 글