我有一个可以在我的本地MySQL数据库上运行但在公共服务器上不返回相同值的函数。我不知道为什么。我使用的是UTF-8。
参数是整数(Keyval
)。我的想法是取Keyval: 216
并将其转换为',,'ƒ',它们是字符:130,130,132,131,136至:MakeAltAbbr(216)
UPDATE `cc_team` SET `AltTMAbbr`= MakeAltAbbr(TeamKey) WHERE TeamKey = 216;
在localhost上它会创建一些特殊字符,在服务器上它是“空白”。
BEGIN
DECLARE cc CHAR(5);
DECLARE str CHAR(5);
DECLARE x INT default 0;
DECLARE y INT default 0;
SET str = '';
SET x = 1;
SET cc = LPAD(Keyval,5,'0');
SET y = LENGTH(cc);
WHILE x <= y DO
SET str = CONCAT(str,CHAR(SUBSTRING(cc,x,1) + 130));
SET x = x + 1;
END WHILE;
RETURN str;
END