반응형
문자열을 자르는 방법은 다양한 함수를 사용하여 수행할 수 있습니다.
가장 일반적인 함수로는 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
반응형
'개발이야기 > MySQL' 카테고리의 다른 글
[MySQL] 위도 경도 값으로 거리 계산하기 (Haversine 공식) (0) | 2023.08.29 |
---|---|
[MySQL] UNION, UNION ALL 차이점 (Group by, Order by 활용) (0) | 2023.08.02 |
[MySQL] SELECT 결과로 테이블 만들기 (CREATE TABLE AS SELECT) (0) | 2023.07.07 |
[MySQL] SELECT alias(별칭) 조건문에서 사용하기, 예제 (having) (0) | 2023.06.30 |
[MySQL] EXISTS 사용법, 예제, 활용하기 (조건 만족 검색) (0) | 2023.06.08 |
댓글