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
廣告