カテゴリ:

文字列とバイナリ関数 (エンコード/デコード)

HEX_DECODE_BINARY

16進数でエンコードされた文字列をバイナリにデコードします。

こちらもご覧ください:

TRY_HEX_DECODE_BINARY

構文

HEX_DECODE_BINARY(<input>)

引数

入力

16進数のみを含む文字列式です。通常、この入力文字列は関数 HEX_ENCODE を呼び出して生成されます。

戻り値

BINARY 型の列に挿入できる BINARY 値などです。

文字列で始め、16進数を表す文字としてエンコードします。次に、 HEX_DECODE_BINARY を使用してこれらの16進数文字を BINARY に変換します。

テーブルを作成して入力します。

CREATE TABLE binary_table (v VARCHAR, b BINARY);
INSERT INTO binary_table (v, b) 
    SELECT 'HELLO', HEX_DECODE_BINARY(HEX_ENCODE('HELLO'));

BINARY 値を取得し、元の文字列として(出力の3番目の列に)表示します。

SELECT v, b, HEX_DECODE_STRING(TO_VARCHAR(b)) FROM binary_table;
+-------+------------+----------------------------------+
| V     | B          | HEX_DECODE_STRING(TO_VARCHAR(B)) |
|-------+------------+----------------------------------|
| HELLO | 48454C4C4F | HELLO                            |
+-------+------------+----------------------------------+

16進数でエンコードされたバイナリをデコードします( MD5_BINARYによる出力):

SELECT HEX_DECODE_BINARY(HEX_ENCODE(MD5_BINARY('Snowflake')));

--------------------------------------------------------+
 HEX_DECODE_BINARY(HEX_ENCODE(MD5_BINARY('SNOWFLAKE'))) |
--------------------------------------------------------+
 EDF1439075A83A447FB8B630DDC9C8DE                       |
--------------------------------------------------------+