跳到主要内容
版本: 最新版本-3.5

to_binary

根据输入字符串的指定二进制格式 (binary_type),将 VARCHAR 字符串转换为二进制值。 支持以下二进制格式:hexencode64utf8。 如果未指定 binary_type,则默认为 hex

语法

to_binary(str[, binary_type])

参数

  • str:要转换的字符串,必需。 它必须是 VARCHAR 字符串。

  • binary_type:用于转换的二进制格式,可选。

    • hex(默认):to_binary 假定输入字符串是一个十六进制字符串,其中所有字符都在“0123456789abcdef”中。 如果输入字符串无效,则返回一个空二进制文件(不会引发异常)。 to_binary 将直接将输入字符串转换为二进制。 例如,"abab" 将转换为 x'abab'。 输入字符串不区分大小写。
    • encode64to_binary 假定输入字符串是 base64 编码的字符串。 如果输入字符串无效,则返回一个空二进制文件(不会引发异常)。 to_binary 将解码 base64 编码的字符串作为二进制结果。 例如,"YWJhYg==" 将转换为 x'abab'
    • utf8to_binary 将输入字符串转换为二进制值,而无需任何转换。

返回值

返回 VARCHAR 值。

示例

以下示例假定当您从 MySQL 客户端访问 StarRocks 时,启用了 --binary-as-hex 选项。 这样,二进制数据将使用十六进制表示法显示。

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)

-- The input string does not match the binary format and an empty binary is returned.

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

参考