SUBSTRING_INDEX() 함수는 MySQL 및 CUBRID 등에서 문자열을 특정 구분자를 기준으로 나눈 뒤, 원하는 위치의 부분 문자열만 추출할 때 사용하는 함수입니다.
SUBSTRING_INDEX(str, delim, count)
| 파라미터 | 설명 |
| str | 원본 문자열 |
| delim | 구분자 (ex: 쉼표 ,, 슬래시 /, 공백 ' ' 등) |
| count | 추출할 부분의 위치 (양수: 왼쪽부터 / 음수: 오른쪽부터) |
SELECT SUBSTRING_INDEX('apple,banana,orange', ',', 1);
-- 결과: 'apple'
SELECT SUBSTRING_INDEX('apple,banana,orange', ',', 2);
-- 결과: 'apple,banana'
SELECT SUBSTRING_INDEX('apple,banana,orange', ',', -1);
-- 결과: 'orange'
SELECT SUBSTRING_INDEX('apple,banana,orange', ',', -2);
-- 결과: 'banana,orange'
SELECT SUBSTRING_INDEX('user@example.com', '@', 1);
-- 결과: 'user'
SELECT SUBSTRING_INDEX('https://naver.com/blog/123', '/', 3);
-- 결과: 'https://naver.com'
CUBRID 10 이상에서는 SUBSTRING_INDEX() 함수가 MySQL과 거의 동일하게 지원됩니다.
문자열 전처리나 파싱에 매우 유용합니다.
| LIMIT 절 사용해서 대용량 데이터 나눠서 조회하기 (3) | 2025.08.02 |
|---|---|
| sql 쿼리 select 조회할때 컬럼값을 ' ' 작은따옴표로 감싸서 조회하고 싶은데 어떻게 조회해야 할까요? (1) | 2025.08.02 |
| 데이터베이스 테이블 인덱스 생성을 위해 효율적인 기준은? (0) | 2025.07.20 |
| sql 쿼리에서 current_timestamp 기능이란? (1) | 2025.07.19 |
| sql 쿼리에서 순위 dense_rank() 함수 사용하는 방법은? (0) | 2025.07.19 |