일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Wordpress
- 아파치
- 워드프레스 rss
- Kibana
- 크롤링
- mapping
- elasticsrach template
- Elasticsearch
- 맵핑
- 설정 파일
- wordpress feed
- memcache
- htpasswd
- 인스타그램
- 워드프레스
- wordpress rss
- memcached
- wordpress function
- 워드프레스 피드
- Apache
- template
- htaccess
- 엘라스틱서치
- 프록시
- 아파치 프록시
- graph api
- config
- Today
- Total
EunsooD
Mysql 특정 문자열 기준을 데이터 나누기 본문
MySQL에서 PHP처럼 디테일하지는 않지만
특정 문자열로 문자를 나누는 쿼리를 제공한다.
"substring_index"라는 함수인데
특정 문자열 기준으로 앞에서 몇개 뒤에서 몇개 데이터를 출력 할 수 있다.
이 함수를 이용하면 "특수문자 기준" 몇번째 데이터를 가져 올 수 있다.
기준 특수문자를 "$"라고 하면
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('아이폰$갤럭시$샤오미$소니$모토롤라', '$', 2), '$', -1) AS COL;
이라고 하면 결과가 "갤럭시"가 나온다.
"SUBSTRING_INDEX" 함수를 두번 이용하는 편법이다.
첫번째 SUBSTRING_INDEX 의 결과는 "아이폰$갤럭시" 것이고
두번째 SUBSTRING_INDEX 의 결과가 "갤럭시"인 것이다.
위와 같이 편법을 사용 할 때 문제가 되는 것이
"최대값이 정해져 있지 않을때"이다.
예를들면
'아이폰$갤럭시$샤오미$소니$모토롤라'
'아이폰$모토롤라'
'아이폰$갤럭시$모토롤라'
'아이폰'
'아이폰$갤럭시$샤오미$소니$모토롤라$노키아'
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('문자열', '$', 4), '$', -1) AS COL;
문자열 갯수가 모잘라버리면 마지막 값이 반복되는 문제가 있다.
그래서 다음과 같이 문자열을 추가해버린다.
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT('문자열', '$$$$$$$$'), '$', 4), '$', -1) AS COL;
그러면 넘어가는 값은
그냥 빈값으로 출력된다.
http://www.gurubee.net/article/66245
'STUDY' 카테고리의 다른 글
인스타그램 Graph API 활용 정리 (2) | 2022.03.18 |
---|---|
MySQL CASE WHEN TEHN (0) | 2020.10.29 |
정규식 괄호 안에 내용 삭제하기 (0) | 2020.04.28 |
구글 OAuth2 통해서 로그인 - Youtube 채널 ID 가져오기까지 (0) | 2019.08.13 |
정규식 / regex 테스트 페이지! (0) | 2016.02.04 |