Перейти к основному содержимому
Версия: 2.0.x

to_binary

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

Синтаксис

to_binary(str[, binary_type])

Параметры

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

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

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

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

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

Примеры

В следующих примерах предполагается, что при подключении к Selena из клиента MySQL включена опция --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('SELENA', 'utf8');
+----------------------------------------------------------------+
| to_binary('SELENA', '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)

Ссылки