본문 바로가기
Database/MySQL

MySQL initcap Function

by DBTechBiz 2022. 9. 2.

MySQL initcap Function

MySQL 에서는 initcap 함수를 제공하지 않으므로

사용자 정의 함수(User-defined function) 로 만들어 사용해야 한다.


-- 각 단어의 앞글자만 대문자로 치환한다.
-- Ex. oRacle -> Oracle, the oRacle -> The Oracle

-- char 길이는 환경에 맞게 설정
CREATE FUNCTION `initcap`(x char(30)) RETURNS char(30) CHARSET utf8
BEGIN
    SET @str = '';
    SET @l_str = '';
    WHILE x REGEXP ' ' DO
    	SELECT SUBSTRING_INDEX(x, ' ', 1) INTO @l_str;
        SELECT SUBSTRING(x, LOCATE(' ', x) + 1) INTO x;
        SELECT CONCAT(@str, ' ', CONCAT(UPPER(SUBSTRING(@l_str, 1, 1)), LOWER(SUBSTRING(@l_str, 2)))) INTO @str;
    END WHILE;
    RETURN LTRIM(CONCAT(@str, ' ', CONCAT(UPPER(SUBSTRING(x, 1, 1)), LOWER(SUBSTRING(x, 2)))));
END

 

반응형

'Database > MySQL' 카테고리의 다른 글

MySQL DB 사이즈 증가량 추이  (0) 2022.09.07
MySQL Utility MYSQLDIFF 사용법 (Schema 비교)  (0) 2022.09.01

댓글