개발-데이터베이스

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

WEBKIKIS 2016. 3. 30. 21:00
반응형

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


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

문자열을 구분자로 읽는 함수
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


출처 phpschool

반응형

'개발-데이터베이스' 카테고리의 다른 글

[함수] Mysql To mongodb  (0) 2016.03.30