- MySQL 基礎
- MySQL - 首頁
- MySQL - 簡介
- MySQL - 特性
- MySQL - 版本
- MySQL - 變數
- MySQL - 安裝
- MySQL - 管理
- MySQL - PHP 語法
- MySQL - Node.js 語法
- MySQL - Java 語法
- MySQL - Python 語法
- MySQL - 連線
- MySQL - Workbench
- MySQL 資料庫
- MySQL - 建立資料庫
- MySQL - 刪除資料庫
- MySQL - 選擇資料庫
- MySQL - 顯示資料庫
- MySQL - 複製資料庫
- MySQL - 資料庫匯出
- MySQL - 資料庫匯入
- MySQL - 資料庫資訊
- MySQL 使用者
- MySQL - 建立使用者
- MySQL - 刪除使用者
- MySQL - 顯示使用者
- MySQL - 修改密碼
- MySQL - 授予許可權
- MySQL - 顯示許可權
- MySQL - 收回許可權
- MySQL - 鎖定使用者賬戶
- MySQL - 解鎖使用者賬戶
- MySQL 表
- MySQL - 建立表
- MySQL - 顯示錶
- MySQL - 修改表
- MySQL - 重命名錶
- MySQL - 克隆表
- MySQL - 截斷表
- MySQL - 臨時表
- MySQL - 修復表
- MySQL - 描述表
- MySQL - 新增/刪除列
- MySQL - 顯示列
- MySQL - 重新命名列
- MySQL - 表鎖定
- MySQL - 刪除表
- MySQL - 派生表
- MySQL 查詢
- MySQL - 查詢
- MySQL - 約束
- MySQL - 插入查詢
- MySQL - 選擇查詢
- MySQL - 更新查詢
- MySQL - 刪除查詢
- MySQL - 替換查詢
- MySQL - 插入忽略
- MySQL - 插入重複鍵更新
- MySQL - 將選擇插入
- MySQL 運算子和子句
- MySQL - Where 子句
- MySQL - Limit 子句
- MySQL - Distinct 子句
- MySQL - Order By 子句
- MySQL - Group By 子句
- MySQL - Having 子句
- MySQL - AND 運算子
- MySQL - OR 運算子
- MySQL - Like 運算子
- MySQL - IN 運算子
- MySQL - ANY 運算子
- MySQL - EXISTS 運算子
- MySQL - NOT 運算子
- MySQL - 不等於運算子
- MySQL - IS NULL 運算子
- MySQL - IS NOT NULL 運算子
- MySQL - Between 運算子
- MySQL - UNION 運算子
- MySQL - UNION 與 UNION ALL
- MySQL - MINUS 運算子
- MySQL - INTERSECT 運算子
- MySQL - INTERVAL 運算子
- MySQL 連線
- MySQL - 使用連線
- MySQL - 內連線
- MySQL - 左連線
- MySQL - 右連線
- MySQL - 交叉連線
- MySQL - 全連線
- MySQL - 自連線
- MySQL - 刪除連線
- MySQL - 更新連線
- MySQL - Union 與 Join
- MySQL 觸發器
- MySQL - 觸發器
- MySQL - 建立觸發器
- MySQL - 顯示觸發器
- MySQL - 刪除觸發器
- MySQL - 插入前觸發器
- MySQL - 插入後觸發器
- MySQL - 更新前觸發器
- MySQL - 更新後觸發器
- MySQL - 刪除前觸發器
- MySQL - 刪除後觸發器
- MySQL 資料型別
- MySQL - 資料型別
- MySQL - VARCHAR
- MySQL - BOOLEAN
- MySQL - ENUM
- MySQL - DECIMAL
- MySQL - INT
- MySQL - FLOAT
- MySQL - BIT
- MySQL - TINYINT
- MySQL - BLOB
- MySQL - SET
- MySQL 正則表示式
- MySQL - 正則表示式
- MySQL - RLIKE 運算子
- MySQL - NOT LIKE 運算子
- MySQL - NOT REGEXP 運算子
- MySQL - regexp_instr() 函式
- MySQL - regexp_like() 函式
- MySQL - regexp_replace() 函式
- MySQL - regexp_substr() 函式
- MySQL 函式 & 運算子
- MySQL - 日期和時間函式
- MySQL - 算術運算子
- MySQL - 數字函式
- MySQL - 字串函式
- MySQL - 聚合函式
- MySQL 雜項概念
- MySQL - NULL 值
- MySQL - 事務
- MySQL - 使用序列
- MySQL - 處理重複項
- MySQL - SQL 注入
- MySQL - 子查詢
- MySQL - 註釋
- MySQL - 檢查約束
- MySQL - 儲存引擎
- MySQL - 將表匯出到 CSV 檔案
- MySQL - 將 CSV 檔案匯入到資料庫
- MySQL - UUID
- MySQL - 公共表表達式
- MySQL - On Delete Cascade
- MySQL - Upsert
- MySQL - 水平分割槽
- MySQL - 垂直分割槽
- MySQL - 遊標
- MySQL - 儲存函式
- MySQL - 訊號
- MySQL - 重新發送訊號
- MySQL - 字元集
- MySQL - 校對
- MySQL - 萬用字元
- MySQL - 別名
- MySQL - ROLLUP
- MySQL - 當天日期
- MySQL - 字面量
- MySQL - 儲存過程
- MySQL - Explain
- MySQL - JSON
- MySQL - 標準差
- MySQL - 查詢重複記錄
- MySQL - 刪除重複記錄
- MySQL - 選擇隨機記錄
- MySQL - 顯示 Processlist
- MySQL - 更改列型別
- MySQL - 重置自動遞增
- MySQL - Coalesce() 函式
- MySQL 有用資源
- MySQL - 有用函式
- MySQL - 語句參考
- MySQL - 快速指南
- MySQL - 有用資源
- MySQL - 討論
MySQL FROM_BASE64() 函式
MySQL 的 **FROM_BASE64()** 函式接受一個使用 Base64 編碼格式編碼的字串值,將其解碼為二進位制字串並返回結果。Base64 編碼是一種僅使用可列印 ASCII 字元表示二進位制資料的方法。
如果傳遞給此函式的引數不是有效的 Base64 字串或 NULL,則它將返回 NULL 值。如果在本地呼叫此函式,則結果值將為十六進位制表示法。
語法
以下是 MySQL FROM_BASE64() 函式的語法:
FROM_BASE64(str)
引數
此函式以 Base64 編碼的字串值作為引數。
返回值
此函式返回給定字串的解碼二進位制資料。
示例
在以下示例中,我們解碼一個 Base64 編碼的字串並以十六進位制格式顯示結果:
SELECT FROM_BASE64('VHV0b3JpYWxzcG9pbnQ=');
以上程式碼的輸出如下:
| FROM_BASE64('VHV0b3JpYWxzcG9pbnQ=') |
|---|
| 0x5475746F7269616C73706F696E74 |
如果停用 **--binary-as-hex** 值,則上述查詢的結果將如下所示:
SELECT FROM_BASE64('VHV0b3JpYWxzcG9pbnQ=');
以上程式碼的輸出如下所示:
| FROM_BASE64('VHV0b3JpYWxzcG9pbnQ=') |
|---|
| Tutorialspoint |
示例
這是另一個示例,我們在這裡解碼一個較短的 Base64 字串:
SELECT FROM_BASE64('dGVzdA==');
獲得的輸出如下:
| FROM_BASE64('dGVzdA==') |
|---|
| 0x74657374 |
如果停用 **--binary-as-hex** 值,則上述查詢的結果將如下所示:
SELECT FROM_BASE64('dGVzdA==');
產生的結果如下:
| FROM_BASE64('dGVzdA==') |
|---|
| 0test |
示例
您還可以將 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('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 |
示例
如果將 NULL 或無效字串作為引數傳遞,則此函式將返回 NULL:
SELECT FROM_BASE64(NULL);
產生的結果如下所示:
| FROM_BASE64(NULL) |
|---|
| 0x |
在這裡,我們將 'Invalid String' 作為引數傳遞給 FROM_BASE64() 函式:
SELECT FROM_BASE64('Invalid string');
產生的結果如下所示:
| FROM_BASE64('Invalid string') |
|---|
| 0x |
如果停用 **--binary-as-hex** 值,則上述查詢的結果將如下所示:
SELECT FROM_BASE64(NULL);
產生的結果如下:
| FROM_BASE64(NULL) |
|---|
| NULL |
示例
您還可以將表的列名作為引數傳遞給此函式並解碼其中的值。
讓我們建立一個名為“DATA”的表,並使用 CREATE 和 INSERT 語句向其中插入記錄,如下所示:
CREATE TABLE DATA ( Name VARCHAR(15), UserID INT, Val VARCHAR(50) );
現在,讓我們使用 INSERT 語句向其中插入記錄:
INSERT INTO DATA VALUES
('Raju', 1001, 'S2V5MWFiYzEyMw'),
('Rahman', 1002, 'S2V5MWFiYzEyMw=='),
('Robert', 1002, 'a2V5Mw==');
獲得的 DATA 如下:
| 姓名 | 使用者 ID | 值 |
|---|---|---|
| Raju | 1001 | S2V5MWFiYzEyMw |
| Rahman | 1002 | S2V5MWFiYzEyMw== |
| Robert | 1002 | a2V5Mw== |
以下查詢將 'Val' 列的值從 Base64 字串解碼為二進位制字串:
SELECT Name, UserID, Val, FROM_BASE64(Val) FROM DATA;
執行上述程式碼後,我們將獲得以下輸出:
| 姓名 | 使用者 ID | 值 | FROM_BASE64(Val) |
|---|---|---|---|
| Raju | 1001 | S2V5MWFiYzEyMw | 0x4B657931616263313233 |
| Rahman | 1002 | S2V5MWFiYzEyMw== | 0x4B657931616263313233 |
| Robert | 1002 | a2V5Mw== | 0x6B657933 |
如果停用 **--binary-as-hex** 值,則上述查詢的結果將如下所示:
SELECT Name, UserID, Val, FROM_BASE64(Val) FROM DATA;
以上程式碼的輸出如下:
| 姓名 | 使用者 ID | 值 | FROM_BASE64(Val) |
|---|---|---|---|
| Raju | 1001 | S2V5MWFiYzEyMw | key1abc123 |
| Rahman | 1002 | S2V5MWFiYzEyMw== | key2abc |
| Robert | 1002 | a2V5Mw== | key3 |