メインコンテンツまでスキップ

to_binary

to_binary

説明

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

構文

to_binary(str[, binary_type])

パラメータ

  • str:変換する文字列、必須です。VARCHAR文字列である必要があります。
  • binary_type:変換のためのバイナリ形式、オプションです。
    • hex(デフォルト):to_binaryは、すべての文字が '0123456789abcdef' の16進数文字列であると想定します。入力文字列が無効な場合、空のバイナリが返されます(例外はスローされません)。to_binaryは、入力文字列を直接バイナリに変換します。例えば、"abab"x'abab'に変換されます。入力文字列は大文字と小文字を区別しません。
    • encode64to_binaryは、入力文字列がBase64エンコードされた文字列であると想定します。入力文字列が無効な場合、空のバイナリが返されます(例外はスローされません)。to_binaryは、Base64エンコードされた文字列をバイナリ結果としてデコードします。例えば、"YWJhYg=="x'abab'に変換されます。
    • utf8to_binaryは、入力文字列を変換せずにバイナリ値として扱います。

戻り値

VARCHAR値を返します。

以下の例は、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)

参考資料