MySQL TO_BASE64() 函数



MySQL 的 **TO_BASE64()** 函数用于将字符串编码为 Base-64 编码的字符串。Base-64 编码是一种通过将 3 个字节的二进制数据转换为 4 个字节的文本数据,以 ASCII 文本格式表示二进制数据的方法。

以下是 MySQL TO_BASE64() 函数遵循的规则:

  • 字母值 62 的编码为 '+'。
  • 字母值 63 的编码为 '/'。
  • 编码输出将是一组 4 个字符。如果最后一组不完整,则将用 '=' 字符填充。
  • 它在每 76 个编码输出字符后添加一个新行,以将长输出值拆分为多行。
  • 解码识别并忽略制表符、回车符、换行符和空格。

语法

以下是 MySQL TO_BASE64() 函数的语法:

TO_BASE64(str)

参数

此函数将字符串值作为参数。

返回值

此函数返回给定字符串的 Base64 编码表示形式。

示例

在以下示例中,字符串 'Tutorialspoint' 被编码为其 Base64 表示形式:

SELECT TO_BASE64('Tutorialspoint');

以下是上述代码的输出:

TO_BASE64('Tutorialspoint')
VHV0b3JpYWxzcG9pbnQ=

示例

这是另一个示例,我们在其中编码一个较短的 Base64 字符串:

SELECT TO_BASE64('test');

获得的输出如下:

TO_BASE64('test')
dGVzdA==

示例

您还可以将 TO_BASE64() 和 FROM_BASE64() 函数一起使用,先编码然后解码字符串回其原始形式:

SELECT TO_BASE64('Hello how are you'), FROM_BASE64(TO_BASE64('Hello how are you'));

我们得到以下输出:

TO_BASE64('Hello how are you') FROM_BASE64(TO_BASE64('Hello how are you'))
SGVsbG8gaG93IGFyZSB5b3U= 0x48656C6C6F20686F772061726520796F75

如果禁用 **--binary-as-hex** 值,则上述查询的结果将如下所示:

SELECT TO_BASE64('Hello how are you'),
FROM_BASE64(TO_BASE64('Hello how are you'));

以下是上述代码的输出:

TO_BASE64('Hello how are you') FROM_BASE64(TO_BASE64('Hello how are you'))
SGVsbG8gaG93IGFyZSB5b3U= Hello how are you

示例

您还可以将表的列名作为参数传递给此函数,并对其进行编码。

让我们创建一个名为“DATA”的表,并使用 CREATE 和 INSERT 语句向其中插入记录,如下所示:

CREATE TABLE DATA (
   Name VARCHAR(15), 
   UserID INT, 
   Val VARCHAR(50)
);

现在,让我们使用 INSERT 语句向其中插入记录:

INSERT INTO DATA VALUES 
('Raju', 1001, 'Key1abc123'),
('Rahman', 1002, 'Key2abc'),
('Robert', 1002, 'key3');

获得的 DATA 如下:

姓名 用户ID
Raju 1001 Key1abc123
Rahman 1002 Key2abc
Robert 1002 key3

以下查询将列“Val”的值编码为 Base64 字符串:

SELECT Name, UserID, Val, TO_BASE64(Val) 
FROM DATA;

执行上述代码后,我们得到以下输出:

姓名 用户ID TO_BASE64(Val)
Raju 1001 Key1abc123 S2V5MWFiYzEyMw==
Rahman 1002 Key2abc S2V5MWFiYzEyMw==
Robert 1002 key3 a2V5Mw==
mysql-to-base64-function.htm
广告