MariaDBでは、UNHEX()
HEX()
の逆演算を実行する組み込みの文字列関数です。 機能。
一方、HEX()
関数は、指定された文字列の16進表現であるUNHEX()
を返します。 関数は、指定された16進値の文字列表現を返します。
具体的には、UNHEX()
引数内の16進数の各ペアを数値として解釈し、それを数値で表される文字に変換します。
結果はバイナリ文字列として返されます。
構文
構文は次のようになります:
UNHEX(str)
str
は「16進されていない」16進値です。
例
基本的な例は次のとおりです。
SELECT UNHEX('61');
結果:
+-------------+ | UNHEX('61') | +-------------+ | a | +-------------+
小文字の16進表現a
61
です 、など、61
を渡すことで UNHEX()
へ 関数の場合、小文字のa
を取得します 。
次に、さらにいくつかの16進値を実行する例を示します。
SELECT
UNHEX('61'),
UNHEX('6161'),
UNHEX('41'),
UNHEX('4141'),
UNHEX('62'),
UNHEX('6262'),
UNHEX('42'),
UNHEX('4242'),
UNHEX('436174'),
UNHEX('446F67'),
UNHEX('50617773202620436C617773'),
UNHEX('5A65627261');
結果(垂直出力を使用):
UNHEX('61'): a UNHEX('6161'): aa UNHEX('41'): A UNHEX('4141'): AA UNHEX('62'): b UNHEX('6262'): bb UNHEX('42'): B UNHEX('4242'): BB UNHEX('436174'): Cat UNHEX('446F67'): Dog UNHEX('50617773202620436C617773'): Paws & Claws UNHEX('5A65627261'): Zebra
HEX()
との比較
HEX()
をネストする例を次に示します。 UNHEX()
内 元の文字列を返すには:
SELECT
HEX('Homer Jay'),
UNHEX(HEX('Homer Jay'));
結果:
+--------------------+-------------------------+ | HEX('Homer Jay') | UNHEX(HEX('Homer Jay')) | +--------------------+-------------------------+ | 486F6D6572204A6179 | Homer Jay | +--------------------+-------------------------+
ただし、UNHEX()
結果をバイナリ文字列として返します:
SELECT
COLLATION('Homer Jay') AS "Literal",
COLLATION(HEX('Homer Jay')) AS "HEX()",
COLLATION(UNHEX(HEX('Homer Jay'))) AS "UNHEX()";
結果:
+-----------------+-----------------+---------+ | Literal | HEX() | UNHEX() | +-----------------+-----------------+---------+ | utf8_general_ci | utf8_general_ci | binary | +-----------------+-----------------+---------+
ヌル引数
null
を渡す UNHEX()
へ 結果はnull
:
SELECT UNHEX(null);
結果:
+-------------+ | UNHEX(null) | +-------------+ | NULL | +-------------+
引数を渡さない
UNHEX()
を呼び出す 引数を渡さないとエラーが発生します:
SELECT UNHEX();
結果:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UNHEX'