メインコンテンツまでスキップ
バージョン: Latest-3.4

to_binary

指定されたバイナリ形式 (binary_type) に基づいて、VARCHAR 文字列をバイナリ値に変換します。サポートされているバイナリ形式は、hexencode64、および utf8 です。binary_type が指定されていない場合、デフォルトは hex です。

Syntax

to_binary(str[, binary_type])

Parameters

  • str: 変換する文字列。必須です。VARCHAR 文字列である必要があります。

  • binary_type: 変換のためのバイナリ形式。オプションです。

    • hex(デフォルト): to_binary は入力文字列を '0123456789abcdef' のすべての文字を含む 16 進文字列と見なします。入力文字列が有効でない場合、空のバイナリが返されます(例外はスローされません)。to_binary は入力文字列を直接バイナリに変換します。例えば、"abab"x'abab' に変換されます。入力文字列は大文字小文字を区別しません。
    • encode64: to_binary は入力文字列を base64 エンコードされた文字列と見なします。入力文字列が有効でない場合、空のバイナリが返されます(例外はスローされません)。to_binary は base64 エンコードされた文字列をデコードしてバイナリ結果とします。例えば、"YWJhYg=="x'abab' に変換されます。
    • utf8: to_binary は入力文字列を変換せずにバイナリ値として扱います。

Return value

VARCHAR 値を返します。

Examples

以下の例では、MySQL クライアントから StarRocks にアクセスする際に --binary-as-hex オプションが有効であると仮定しています。この方法で、バイナリデータは 16 進表記で表示されます。

mysql> select to_binary('ABAB', 'hex');
+----------------------------------------------------+
| to_binary('ABAB', 'hex') |
+----------------------------------------------------+
| 0xABAB |
+----------------------------------------------------+
1 row in set (0.01 sec)

mysql> select to_binary('U1RBUlJPQ0tT', 'encode64');
+------------------------------------------------------------------------------+
| to_binary('U1RBUlJPQ0tT', 'encode64') |
+------------------------------------------------------------------------------+
| 0x53544152524F434B53 |
+------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> select to_binary('STARROCKS', 'utf8');
+----------------------------------------------------------------+
| to_binary('STARROCKS', 'utf8') |
+----------------------------------------------------------------+
| 0x53544152524F434B53 |
+----------------------------------------------------------------+
1 row in set (0.00 sec)

-- 入力文字列がバイナリ形式と一致せず、空のバイナリが返されます。

mysql> select to_binary('U1RBUlJPQ0tT', 'hex');
+--------------------------------------------------------------------+
| to_binary('U1RBUlJPQ0tT', 'hex') |
+--------------------------------------------------------------------+
| 0x |
+--------------------------------------------------------------------+
1 row in set (0.00 sec)

References