MariaDB FROM_BASE64() 函数解码给定的 base-64 编码字符串并将结果作为二进制字符串返回。如果参数为 NULL 或不是有效的 base-64 字符串,则结果为 NULL。此函数与 TO_BASE64() 函数相反。
存在不同的 base-64 编码方案。这些是 TO_BASE64() 和 FROM_BASE64() 使用的编码和解码规则:
- 字母值 62 的编码是"+"。
- 字母值 63 的编码是"/"。
- 编码输出组成由四个可打印字符组成的组,每三个字节的数据使用四个字符进行编码。如果最终组不完整,则用"="字符填充,使长度达到 4。
- 为了分割长输出,每 76 个字符后添加一个换行符。
- 解码可识别并忽略换行符、回车符、制表符和空格。
语法
FROM_BASE64(string)
参数
string | 必填。 指定base-64编码的字符串。 |
返回值
以二进制字符串形式返回解码后的字符串。如果参数为 NULL 或不是有效的 base-64 字符串,则返回 NULL。
示例 1:
下面的示例显示 FROM_BASE64() 的用法
SELECT TO_BASE64('Hello');
Result: 'SGVsbG8='
SELECT FROM_BASE64(TO_BASE64('Hello'));
Result: 'Hello'
SELECT FROM_BASE64('SGVsbG8=');
Result: 'Hello'
示例 2:
考虑一个名为 Sample 的数据库表,其中包含以下记录:
Data | EncodedName |
---|---|
Data 1 | Sm9obg== |
Data 2 | TWFycnk= |
Data 3 | Sm8= |
Data 4 | S2lt |
Data 5 | UmFtZXNo |
下面给出的语句可用于解码EncodedName列的记录。此列包含 base-64 编码记录。
SELECT *, FROM_BASE64(EncodedName) AS FROM_BASE64_Value FROM Sample;
这将产生如下所示的结果:
Data | EncodedName | FROM_BASE64_Value |
---|---|---|
Data 1 | Sm9obg== | John |
Data 2 | TWFycnk= | Marry |
Data 3 | Sm8= | Jo |
Data 4 | S2lt | Kim |
Data 5 | UmFtZXNo | Ramesh |