sql >> データベース >  >> RDS >> Mysql

PostgreSQLのBase58エンコーダー機能

    私が思いついたPostgreSQLの同等の関数は次のとおりです。

    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. コマンドラインからMySQLダンプをインポートする方法WITHoverwrite

    2. 距離クエリ内のMysql

    3. SELECTINTOOUTFILEを使用してMySQLErrcode13を回避するにはどうすればよいですか?

    4. Oracleデータベース内のすべての関数とプロシージャのリストを取得します