区切り文字 $$;
DROP FUNCTION IF EXISTS `radius`.`fun_split`$$
CREATE DEFINER=`root`@`% ` FUNCTION `fun_split`(nm varchar(100)) RETURNS varchar(500) CHARSET latin1
SQL データを読み取ります
始める
i int を宣言します。
rtn int を宣言します。
rtn1 int を宣言します。
sec varchar(10) を宣言します。
rtnstr varchar(500) を宣言します。
i=1 を設定します。
rtnstr=''; を設定します。
WHILE i <長さ(nm) DO
set rtn= ascii(substring(nm,i,1));
IF rtn>127 THEN
set rtn1= ascii(right(substring(nm,i,2),1));
IF rtn1> 127 THEN
IF i<長さ(nm)-1 THEN
IF (ascii(right(substring(nm,i,3),1))>127 かつ ascii(right(substring(nm,i,4),1))>127) THEN
set sec=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),' ');
それ以外
秒=''を設定します;
終了 IF;
それ以外
秒=''を設定します;
終了 IF ;
それ以外
set sec=concat(char(rtn),char(rtn1));
終了 IF;
SET i = i + 1;
それ以外
IF i<長さ(nm)-1 THEN
IF (ascii(right(substring(nm,i,2),1))>127 かつ ascii(right(substring(nm,i,3),1))>127) THEN
set sec=concat(char(rtn),' ');
それ以外
設定 sec=char(rtn);
終了 IF;
それ以外
IF (ascii(right(substring(nm,i,2),1))>127 かつ ascii(right(substring(nm,i,3),1))>127) THEN
設定 sec=char(rtn);
それ以外
set sec=char(rtn,ascii(right(substring(nm,i,2),1)));
終了 IF;
終了 IF;
終了 IF;
rtnstr=concat(rtnstr,sec)を設定します。
SET i = i + 1;
途中で終了。
rtnstr を返します。
終了$$
区切り文字 ;$$