1
我发现这个MySQL函数Base58编码器在Github Gist中。PostgreSQL中的Base58编码器函数
DELIMITER $$
CREATE FUNCTION base58_encode (num int) RETURNS varchar(255)
DETERMINISTIC
BEGIN
DECLARE alphabet varchar(255);
DECLARE base_count int DEFAULT 0;
DECLARE encoded varchar(255);
DECLARE divisor DECIMAL(10,4);
DECLARE mode int DEFAULT 0;
SET alphabet = '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ';
SET base_count = CHAR_LENGTH(alphabet);
SET encoded = "";
WHILE num >= base_count DO
SET divisor = num/base_count;
SET mode = (num - (base_count* TRUNCATE(divisor,0)));
SET encoded = CONCAT(SUBSTRING(alphabet FROM mode+1 FOR 1), encoded);
SET num = TRUNCATE(divisor,0);
END WHILE;
SET encoded = CONCAT(SUBSTRING(alphabet FROM num+1 FOR 1), encoded);
RETURN (encoded);
END
我是的新手,难以将上面的函数转换为PostgreSQL函数。
对于Base58编码器,上面的SQL代码段的等效PostgreSQL
函数将如何工作?
你有什么尝试,哪里有问题?因为这应该是易于阅读手册 –
嗨@JuanCarlosOropeza,感谢提醒有关“手册”。发布PostgreSQL版本。 http://stackoverflow.com/a/34759277/1433665。谢谢! – TheKojuEffect