メインコンテンツまでスキップ
に最終更新

TO_BASE64

説明​

TO_BASE64 関数は入力文字列を Base64 形式にエンコードします。Base64 は 64 種類の印字可能な文字に基づくエンコード方式で、メール、URL パラメータ、JSON など、バイナリデータをサポートしないプロトコルでのデータ転送によく使用されます。この関数は RFC 4648 に準拠し、標準の Base64 文字セット(A-Z、a-z、0-9、+、/)とパディング文字(=)を使用します。

構文​

TO_BASE64(<str>)

パラメータ​

パラメータ説明
<str>Base64 形式にエンコードする文字列。型:VARCHAR

戻り値​

Base64 形式にエンコードされた文字列を VARCHAR 型で返します。

エンコード規則:

  • 標準の Base64 文字セット(A-Z、a-z、0-9、+、/)を使用します。
  • = をパディング文字として使用し、出力の長さを 4 の倍数にします。
  • UTF-8 のマルチバイト文字を正しくエンコードします。
  • 出力文字列には印字可能な ASCII 文字のみが含まれます。

特殊なケース:

  • 入力が NULL の場合、NULL を返します。
  • 入力が空文字列の場合、空文字列を返します。
  • UTF-8 の文字エンコーディングを自動的に処理します。
  • 出力の長さは常に入力のバイト数の 4/3 倍を 4 の倍数に切り上げた長さになります。

例​

  1. 基本的な文字のエンコード
SELECT TO_BASE64('1'), TO_BASE64('A');
+----------------+----------------+
| TO_BASE64('1') | TO_BASE64('A') |
+----------------+----------------+
| MQ== | QQ== |
+----------------+----------------+
  1. 複数文字の文字列のエンコード
SELECT TO_BASE64('234'), TO_BASE64('Hello');
+------------------+--------------------+
| TO_BASE64('234') | TO_BASE64('Hello') |
+------------------+--------------------+
| MjM0 | SGVsbG8= |
+------------------+--------------------+
  1. NULL と空文字列の処理
SELECT TO_BASE64(NULL), TO_BASE64('');
+-----------------+---------------+
| TO_BASE64(NULL) | TO_BASE64('') |
+-----------------+---------------+
| NULL | |
+-----------------+---------------+
  1. 長い文字列のエンコード
SELECT TO_BASE64('Hello World'), TO_BASE64('The quick brown fox');
+-------------------------+-------------------------------+
| TO_BASE64('Hello World') | TO_BASE64('The quick brown fox') |
+-------------------------+-------------------------------+
| SGVsbG8gV29ybGQ= | VGhlIHF1aWNrIGJyb3duIGZveA== |
+-------------------------+-------------------------------+
  1. 数字と特殊文字
SELECT TO_BASE64('123456'), TO_BASE64('!@#$%^&*()');
+---------------------+------------------------+
| TO_BASE64('123456') | TO_BASE64('!@#$%^&*()') |
+---------------------+------------------------+
| MTIzNDU2 | IUAjJCVeJiooKQ== |
+---------------------+------------------------+
  1. UTF-8 のマルチバイト文字
SELECT TO_BASE64('ṭṛì'), TO_BASE64('ḍḍumai hello');
+-------------------+---------------------------+
| TO_BASE64('ṭṛì') | TO_BASE64('ḍḍumai hello') |
+-------------------+---------------------------+
| 4bmt4bmbw6w= | 4bmN4bmNdW1haSBoZWxsbw== |
+-------------------+---------------------------+
  1. メールアドレスのエンコード
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== |
+------------------------------+-----------------------------------+
  1. 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= |
+--------------------------------------+----------------------+
  1. 長さの異なる文字列とパディング
SELECT TO_BASE64('a'), TO_BASE64('ab'), TO_BASE64('abc');
+----------------+-----------------+------------------+
| TO_BASE64('a') | TO_BASE64('ab') | TO_BASE64('abc') |
+----------------+-----------------+------------------+
| YQ== | YWI= | YWJj |
+----------------+-----------------+------------------+

キーワード​

TO_BASE64, BASE64