MySQL TO_BASE64() 函数
MySQL TO_BASE64() 函数用于将字符串编码为 base-64 编码字符串。Base-64 编码是一种以 ASCII 文本格式表示二进制数据的方法,它将 3 个字节的二进制数据转换为 4 个字节的文本数据。
以下是 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 值,上述查询的结果将如下所示 &mnus;
SELECT TO_BASE64('你好,你好吗'),
FROM_BASE64(TO_BASE64('你好,你好吗'));
以下是上述代码的输出 -
| 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');
获取的数据如下 -
| Name | UserID | Val |
|---|---|---|
| Raju | 1001 | Key1abc123 |
| Rahman | 1002 | Key2abc |
| Robert | 1002 | key3 |
以下查询将"Val"列的值编码为 Base64 字符串 -
SELECT Name, UserID, Val, TO_BASE64(Val) FROM DATA;
执行上述代码后,我们得到以下输出 -
| Name | UserID | Val | TO_BASE64(Val) |
|---|---|---|---|
| Raju | 1001 | Key1abc123 | S2V5MWFiYzEyMw== |
| Rahman | 1002 | Key2abc | S2V5MWFiYzEyMw== |
| Robert | 1002 | key3 | a2V5Mw== |
mysql-to-base64-function.html