Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Hàm mã hóa Base58 trong PostgreSQL

Hàm tương đương trong PostgreSQL mà tôi đã nghĩ ra như sau.

CREATE FUNCTION base58_encode(num INT)
  RETURNS VARCHAR(255) AS $encoded$

DECLARE
  alphabet   VARCHAR(255);
  base_count INT DEFAULT 0;
  encoded    VARCHAR(255);
  divisor    DECIMAL(10, 4);
  mod        INT DEFAULT 0;

BEGIN
  alphabet := '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ';
  base_count := char_length(alphabet);
  encoded := '';

  WHILE num >= base_count LOOP
    divisor := num / base_count;
    mod := (num - (base_count * trunc(divisor, 0)));
    encoded := concat(substring(alphabet FROM mod + 1 FOR 1), encoded);
    num := trunc(divisor, 0);
  END LOOP;

  encoded = concat(substring(alphabet FROM num + 1 FOR 1), encoded);

  RETURN (encoded);

END; $encoded$
LANGUAGE PLPGSQL;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển đổi từ mysql sang PDO

  2. Mối quan hệ bảng MyISAM Engine (MySQL)

  3. MYSQL THAM GIA TRÁI với GROUP BY

  4. Sự khác biệt trong MySQL JOIN so với LEFT JOIN

  5. Chọn từ phần tiếp theo mối quan hệ nhiều đến nhiều