2014年3月4日 星期二

MySQL流程控制-repeat範例

# 去除字串中重覆空白字元

DROP FUNCTION `mrim`;
CREATE DEFINER=`root`@`localhost` FUNCTION `mrim`(`str` VARCHAR(2048)) RETURNS VARCHAR(2048) NOT DETERMINISTIC NO SQL SQL SECURITY DEFINER begin
DECLARE i INT DEFAULT 1;
DECLARE l INT;
DECLARE _str varchar(1024);
DECLARE _s varchar(1024);

set l = LENGTH(str);
set _str = '';

r1:REPEAT

set _s = substr(str,i,1);

if(_s<> ' ') then set _str = concat(_str,_s);
elseif (_s=' ' and substr(_str, LENGTH(_str), 1)<>' ') THEN set _str = CONCAT(_str,_s);
END IF;
  
set i = i + 1;

UNTIL i>l
END REPEAT r1;

return _str;
end

沒有留言: