mysql 에서 explode 같이 구분 문자열 기준으로 잘라서 가져오기
안녕하세요. 고코더 입니다.
오늘은 MYSQL 에서 문자열 함수 중에 split 혹은 explode 와 같이
특정 문자 기준으로 스트링을 나눠서 가져오는 방법을 배워 보도록 하겠습니다.
SUBSTRING_INDEX는 참 재밌고 활용도 많은 함수입니다.
▼사용법은 아래와 같습니다.
SUBSTRING_INDEX(
1번째 인수 : 컬럼명
2번째 인수 : 기준문자, 구분 문자
3번째 인수 : 보여질 위치, 위치 기준 음수(-)는 뒷부분 부터, 양수(+)는 앞부분 부터
)
간단하게 실무 예를 들면
url이 저장된 컬럼에서 .com 과 같은 뒷 부분 마지막 도메인만
가져와야 한다면 이 함수가 제격이라고 생각합니다.
▼ 만약에 가장 도메인 뒷 주소만 가져와야 한다면 아래 처럼 작성하시면 되겠죠
1 |
SUBSTRING_INDEX('gocoder.tistory.com', '.', - 1) |
cs |
▼이번엔 mysql을 열어보시고 아래 SQL을 실행시켜 보겠습니다.
1
2
3
4
5
6
7
8
|
-- gocoder.tistory.com 을 . <- 기준으로 문자열을 가져와봅시다.!
SELECT
SUBSTRING_INDEX('gocoder.tistory.com', '.', 1),
SUBSTRING_INDEX('gocoder.tistory.com', '.', 2),
SUBSTRING_INDEX('gocoder.tistory.com', '.', 3),
SUBSTRING_INDEX('gocoder.tistory.com', '.', - 1),
SUBSTRING_INDEX('gocoder.tistory.com', '.', - 2),
SUBSTRING_INDEX('gocoder.tistory.com', '.', - 3)
|
cs |
▼ 차례대로 도메인을 .(점)을 기준으로 데이터를 가져왔습니다.
밑에 그림을 혹은 제가 드린 예시인 SQL만 돌려보시면 이해가 완벽히 가실거라 생각이 됩니다.
특정 URL만 제거 한다 거나 규칙적인 데이터의 일부분만 보여줘야 하는 등
다양한 이유에서 많이 쓰게 될 문자열 함수라고 생각 됩니다.
MySql 관련 컨텐츠들
마무리
도메인 다루기에 정말 편리하네요.
'IT_Developers > MySQL' 카테고리의 다른 글
MySQL - Error Code: 1175 / update 실행 오류 (0) | 2019.02.27 |
---|---|
MySQL - DB 백업을 위한 SQL 만들기 (0) | 2019.01.12 |
MySQL - 데이터베이스,테이블,컬럼 인코딩 확인 방법 / INFORMATION_SCHEMA (0) | 2018.04.16 |
MariaDB - 마리아디비 란? (0) | 2017.11.29 |
MySQL - MySQL Workbench 설치하기 (0) | 2017.07.11 |
댓글