TO_BASE64
説明
TO_BASE64関数は、入力文字列をBase64エンコード形式に変換します。Base64は64個の印刷可能文字に基づくエンコード方式で、電子メール、URLパラメータ、JSONなど、バイナリデータをサポートしないプロトコルでデータを送信する際によく使用されます。この関数はRFC 4648標準に従い、標準的なBase64文字セット(A-Z、a-z、0-9、+、/)およびパディング文字(=)を使用します。
構文
TO_BASE64(<str>)
パラメータ
| パラメータ | 説明 |
|---|---|
<str> | Base64エンコードする文字列。型: VARCHAR |
戻り値
VARCHAR型を返します。Base64エンコードされた文字列を表します。
エンコード規則:
- 標準のBase64文字セットを使用: A-Z, a-z, 0-9, +, /
- パディング文字として=を使用し、出力長が4の倍数になることを保証
- UTF-8マルチバイト文字の正しいエンコードをサポート
- 出力文字列にはASCII印刷可能文字のみを含む
特殊なケース:
- 入力がNULLの場合、NULLを返す
- 入力が空文字列の場合、空文字列を返す
- UTF-8文字エンコーディングを自動的に処理
- 出力長は常に入力バイト数の4/3倍(4の倍数に切り上げ)
例
- 基本的な文字エンコード
SELECT TO_BASE64('1'), TO_BASE64('A');
+----------------+----------------+
| TO_BASE64('1') | TO_BASE64('A') |
+----------------+----------------+
| MQ== | QQ== |
+----------------+----------------+
- マルチバイト文字列エンコーディング
SELECT TO_BASE64('234'), TO_BASE64('Hello');
+------------------+--------------------+
| TO_BASE64('234') | TO_BASE64('Hello') |
+------------------+--------------------+
| MjM0 | SGVsbG8= |
+------------------+--------------------+
- NULLと空文字列の処理
SELECT TO_BASE64(NULL), TO_BASE64('');
+-----------------+---------------+
| TO_BASE64(NULL) | TO_BASE64('') |
+-----------------+---------------+
| NULL | |
+-----------------+---------------+
- 長い文字列のエンコーディング
SELECT TO_BASE64('Hello World'), TO_BASE64('The quick brown fox');
+-------------------------+-------------------------------+
| TO_BASE64('Hello World') | TO_BASE64('The quick brown fox') |
+-------------------------+-------------------------------+
| SGVsbG8gV29ybGQ= | VGhlIHF1aWNrIGJyb3duIGZveA== |
+-------------------------+-------------------------------+
- 数値と特殊文字
SELECT TO_BASE64('123456'), TO_BASE64('!@#$%^&*()');
+---------------------+------------------------+
| TO_BASE64('123456') | TO_BASE64('!@#$%^&*()') |
+---------------------+------------------------+
| MTIzNDU2 | IUAjJCVeJiooKQ== |
+---------------------+------------------------+
- UTF-8マルチバイト文字
SELECT TO_BASE64('ṭṛì'), TO_BASE64('ḍḍumai hello');
+-------------------+---------------------------+
| TO_BASE64('ṭṛì') | TO_BASE64('ḍḍumai hello') |
+-------------------+---------------------------+
| 4bmt4bmb4bmA | 4bmN4bmNdW1haSBoZWxsbw== |
+-------------------+---------------------------+
-
Email address encoding
-
メールアドレスエンコーディング
SELECT TO_BASE64('user@example.com'), TO_BASE64('admin.test@company.org');
+------------------------------+-----------------------------------+
| TO_BASE64('user@example.com') | TO_BASE64('admin.test@company.org') |
+------------------------------+-----------------------------------+
| dXNlckBleGFtcGxlLmNvbQ== | YWRtaW4udGVzdEBjb21wYW55Lm9yZw== |
+------------------------------+-----------------------------------+
- JSONデータエンコーディング
SELECT TO_BASE64('{"name":"John","age":30}'), TO_BASE64('[1,2,3,4,5]');
+--------------------------------------+----------------------+
| TO_BASE64('{"name":"John","age":30}') | TO_BASE64('[1,2,3,4,5]') |
+--------------------------------------+----------------------+
| eyJuYW1lIjoiSm9obiIsImFnZSI6MzB9 | WzEsMiwzLDQsNV0= |
+--------------------------------------+----------------------+
- 異なる長さの文字列とパディング
SELECT TO_BASE64('a'), TO_BASE64('ab'), TO_BASE64('abc');
+----------------+-----------------+------------------+
| TO_BASE64('a') | TO_BASE64('ab') | TO_BASE64('abc') |
+----------------+-----------------+------------------+
| YQ== | YWI= | YWJj |
+----------------+-----------------+------------------+
Keywords
TO_BASE64, BASE64