1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| delimiter $$ CREATE function `GetSteamId3FromId32`(str CHAR(50)) returns bigint DETERMINISTIC COMMENT '把 STEAM_0:1:2 的格式转换为好友代码' BEGIN declare middleStr CHAR(5); declare rightStr CHAR(20); declare num1 int; declare num2 int; if CHAR_LENGTH(str) < 3 then return 0; end if; set rightStr = SUBSTRING_INDEX(str, ':', -1); set middleStr = MID(str, CHAR_LENGTH(str) - CHAR_LENGTH(rightStr)- 1, 1); set num1 = CAST(rightStr as SIGNED); set num2 = CAST(middleStr as SIGNED); RETURN num1 * 2 + num2; END $$ delimiter ;
delimiter $$ CREATE function `GetSteamId3FromId64`(old bigint) returns bigint DETERMINISTIC COMMENT '把17位steam id64的数字转换为好友代码' BEGIN declare num bigint; if old < 76000000000000000 then return 0; end if; set num = old << 32; set num = num >> 32; if num < 1 then return 0; end if; return num; END $$ delimiter ;
|