马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在我们工作的过程中,经常能听到很多不使用MySQL的理由,虽然其中有一些是对MySQL的误解,不过同样也有一些是合情合理的。DELIMITER$$;
DROPFUNCTIONIFEXISTS`radius`.`fun_split`$$
CREATEDEFINER=`root`@`%`FUNCTION`fun_split`(nmvarchar(100))RETURNSvarchar(500)CHARSETlatin1
READSSQLDATA
BEGIN
declareiint;
declarertnint;
declarertn1int;
declaresecvarchar(10);
declarertnstrvarchar(500);
seti=1;
setrtnstr=;
WHILEi<length(nm)DO
setrtn=ascii(substring(nm,i,1));
IFrtn>127THEN
setrtn1=ascii(right(substring(nm,i,2),1));
IFrtn1>127THEN
IFi<length(nm)-1THEN
IF(ascii(right(substring(nm,i,3),1))>127andascii(right(substring(nm,i,4),1))>127)THEN
setsec=concat(right(concat(00,rtn-160),2),right(concat(00,rtn1-160),2),right(concat(00,ascii(right(substring(nm,i,3),1))-160),2),right(concat(00,ascii(right(substring(nm,i,4),1))-160),2),);
ELSE
setsec=;
ENDIF;
ELSE
setsec=;
ENDIF;
ELSE
setsec=concat(char(rtn),char(rtn1));
ENDIF;
SETi=i+1;
ELSE
IFi<length(nm)-1THEN
IF(ascii(right(substring(nm,i,2),1))>127andascii(right(substring(nm,i,3),1))>127)THEN
setsec=concat(char(rtn),);
ELSE
setsec=char(rtn);
ENDIF;
ELSE
IF(ascii(right(substring(nm,i,2),1))>127andascii(right(substring(nm,i,3),1))>127)THEN
setsec=char(rtn);
ELSE
setsec=char(rtn,ascii(right(substring(nm,i,2),1)));
ENDIF;
ENDIF;
ENDIF;
setrtnstr=concat(rtnstr,sec);
SETi=i+1;
ENDWHILE;
RETURNrtnstr;
END$$
DELIMITER;$$
需要处理因此带来的更多的支持工作,这有可能会带来成本上的提高。在这种情况下,一些MySQL学习教程发行商可能倾向于选择别的开源数据库,例如遵循BSD授权的PostgreSQL。 |