类别:

字符串和二进制函数 (编码/解码)

TRY_BASE64_DECODE_BINARY

BASE64_DECODE_BINARY 的特殊版本,如果在解码过程中发生错误,它会返回 NULL 值。

语法

TRY_BASE64_DECODE_BINARY(<input> [, <alphabet>])
Copy

实参

input

要转换为 BINARY 数据类型的 base64 编码字符串。

alphabet

至多由三个 ASCII 字符组成的字符串:

  • 字符串中的前两个字符指定用于编码输入的字母表中的最后两个字符(索引 62 和 63):

    • AZ (索引 0-25)。

    • az (索引 26-51)。

    • 09 (索引 52-61)。

    • +/ (索引 62、63)。

    默认字符:+/

  • 字符串中的第三个字符指定用于填充的字符。

    默认:=

返回

这会返回 BINARY 值。例如,可以将该值插入到 BINARY 类型的列中。

使用说明

有关 base64 格式的更多信息,请参阅 base64

示例

这显示了如何使用函数 TRY_BASE64_DECODE_BINARY。 该函数在 INSERT 语句中用于将 base64 编码的字符串解码 BINARY 字段;该函数未在 SELECT 语句中使用。

创建表并插入数据:

CREATE TABLE base64 (v VARCHAR, base64_encoded_varchar VARCHAR, b BINARY);
INSERT INTO base64 (v, base64_encoded_varchar, b)
   SELECT 'HELP', BASE64_ENCODE('HELP'),
      TRY_BASE64_DECODE_BINARY(BASE64_ENCODE('HELP'));
Copy

现在运行一个查询,以显示我们可以完整地检索数据:

SELECT v, base64_encoded_varchar, 
    -- Convert binary -> base64-encoded-string
    TO_VARCHAR(b, 'BASE64'),
    -- Convert binary back to original value
    TO_VARCHAR(b, 'UTF-8')
  FROM base64;
+------+------------------------+-------------------------+------------------------+
| V    | BASE64_ENCODED_VARCHAR | TO_VARCHAR(B, 'BASE64') | TO_VARCHAR(B, 'UTF-8') |
|------+------------------------+-------------------------+------------------------|
| HELP | SEVMUA==               | SEVMUA==                | HELP                   |
+------+------------------------+-------------------------+------------------------+
Copy
语言: 中文