테스트 사이트 - 개발 중인 베타 버전입니다

mysql 문자열을 구분자로 구분해서 처리시 관련 함수

· 11년 전 · 2937

문자열을 구분자로 구분해서 처리시 필요해서 만들어 봤습니다. 

 

문자열을 구분자로 읽는 함수 

CREATE DEFINER=`%`@`localhost` FUNCTION `F_SPLIT_STRING`(`nStr` TEXT, `nDelim` VARCHAR(4), `nPos` INT) 

RETURNS TEXT 

LANGUAGE SQL 

NOT DETERMINISTIC 

CONTAINS SQL 

SQL SECURITY DEFINER 

COMMENT '문자열을 구분자로 해당열 가져오기' 

BEGIN 

DECLARE sStr1 TEXT; 

DECLARE sStr2 TEXT; 

 

SET sStr1 = SUBSTRING_INDEX(nStr, nDelim, nPos); 

SET sStr2 = SUBSTRING_INDEX(sStr1, nDelim, -1); 

 

RETURN sStr2; 

END 

 

사용법 : select F_SPLIT_STRING('a,b,c',',',2); 

결과 : b 

----------------------------------------------------------------------------------- 

CREATE DEFINER=`%`@`localhost` FUNCTION `F_ARRAY_LEN`(`nStr` TEXT, `nDelim` VARCHAR(4)) 

RETURNS int(11) 

LANGUAGE SQL 

NOT DETERMINISTIC 

CONTAINS SQL 

SQL SECURITY DEFINER 

COMMENT '특정문자로 배열을 나눌때 배열의 수' 

BEGIN 

DECLARE sLen1 INT; 

DECLARE sLen2 INT; 

DECLARE sLen INT; 

 

set sLen1 = length(nStr); 

set sLen2 = length(replace(nStr,nDelim,'')); 

set sLen = sLen1 - sLen2 + 1; 

 

RETURN sLen; 

END 

사용법 : select F_ARRAY_LEN('a,b,c',','); 

결과 : 3 

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

게시글 목록

번호 제목
12307
12306
12305
12304
12303
JavaScript 계산기
12302
12301
12300
12299
12298
12297
12296
12295
12294
12293
12292
12291
12290
12289
12288
12287
12286
12285
12284
12283