Перейти к основному содержимому

to_binary

Описание

Преобразует строку VARCHAR в двоичное значение на основе указанного двоичного формата (binary_type) входной строки. Поддерживаются следующие двоичные форматы: hex, encode64 и utf8. Если binary_type не указан, по умолчанию используется hex.

Синтаксис

to_binary(str[, binary_type])

Параметры

  • str: строка для преобразования, обязательный параметр. Должна быть строкой VARCHAR.

  • binary_type: двоичный формат для преобразования, необязательный параметр.

    • hex(по умолчанию): to_binary предполагает, что входная строка является hex-строкой, в которой все символы находятся в '0123456789abcdef'. Если входная строка недействительна, возвращается пустое двоичное значение (исключения не выбрасываются). to_binary преобразует входную строку в двоичный формат напрямую. Например, "abab" будет преобразовано в x'abab'. Входная строка не чувствительна к регистру.
    • encode64: to_binary предполагает, что входная строка является строкой, закодированной в base64. Если входная строка недействительна, возвращается пустое двоичное значение (исключения не выбрасываются). to_binary декодирует строку, закодированную в base64, как двоичный результат. Например, "YWJhYg==" будет преобразовано в x'abab'.
    • utf8: to_binary преобразует входную строку как двоичное значение без каких-либо преобразований.

Возвращаемое значение

Возвращает значение VARCHAR.

Примеры

Следующие примеры предполагают, что опция --binary-as-hex включена при доступе к Selena из вашего MySQL-клиента. Таким образом, двоичные данные отображаются в шестнадцатеричной нотации.

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)

Ссылки