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'