MariaDBでは、HEX()
は、引数の16進文字列表現を返す組み込みの文字列関数です。
これは次のように機能します:
- 引数が数値の場合、
HEX()
数値の16進値の文字列表現を返します。 - 引数が文字列の場合、
HEX()
文字列の16進文字列表現を返します。ここで、文字列内の各文字の各バイトは2桁の16進数字に変換されます。 - MariaDB 10.5.0以降、
HEX()
INET6
を使用 引数は、基になる16バイトのバイナリ文字列の16進表現を返します。
構文
構文は次のようになります:
HEX(N_or_S)
N_or_S
の場所 は数字または文字列です。
例
基本的な例は次のとおりです。
SELECT HEX(15);
結果:
+---------+ | HEX(15) | +---------+ | F | +---------+
ここでは、15
の16進値を取得しました。 、これはF
。
10進数では、カウントは次のようになります:0、1、2、3、4、5、6、7、8、9、10、11、12、13、14、15。
ただし、16進数では、0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、Fのようになります。
したがって、数値が0〜9の場合、10進数と同じ値になります。
16進システムがその値をどのようにインクリメントするかを示す別の例を次に示します。
SELECT
HEX(0),
HEX(1),
HEX(2),
HEX(3),
HEX(4),
HEX(5),
HEX(6),
HEX(7),
HEX(8),
HEX(9),
HEX(10),
HEX(11),
HEX(12),
HEX(13),
HEX(14),
HEX(15),
HEX(16),
HEX(17),
HEX(18),
HEX(19),
HEX(20),
HEX(21),
HEX(22),
HEX(23),
HEX(24),
HEX(25),
HEX(26),
HEX(27),
HEX(28),
HEX(29),
HEX(30),
HEX(31),
HEX(32),
HEX(789456768);
結果(垂直出力を使用):
HEX(0): 0 HEX(1): 1 HEX(2): 2 HEX(3): 3 HEX(4): 4 HEX(5): 5 HEX(6): 6 HEX(7): 7 HEX(8): 8 HEX(9): 9 HEX(10): A HEX(11): B HEX(12): C HEX(13): D HEX(14): E HEX(15): F HEX(16): 10 HEX(17): 11 HEX(18): 12 HEX(19): 13 HEX(20): 14 HEX(21): 15 HEX(22): 16 HEX(23): 17 HEX(24): 18 HEX(25): 19 HEX(26): 1A HEX(27): 1B HEX(28): 1C HEX(29): 1D HEX(30): 1E HEX(31): 1F HEX(32): 20 HEX(789456768): 2F0E2780
文字列
前述のように、引数が文字列の場合、HEX()
文字列の16進文字列表現を返します。ここで、文字列内の各文字の各バイトは2桁の16進数字に変換されます。
例:
SELECT
HEX('a'),
HEX('aa'),
HEX('A'),
HEX('AA'),
HEX('b'),
HEX('bb'),
HEX('B'),
HEX('BB'),
HEX('Cat'),
HEX('Dog'),
HEX('Paws & Claws'),
HEX('Zebra');
結果(垂直出力を使用):
HEX('a'): 61 HEX('aa'): 6161 HEX('A'): 41 HEX('AA'): 4141 HEX('b'): 62 HEX('bb'): 6262 HEX('B'): 42 HEX('BB'): 4242 HEX('Cat'): 436174 HEX('Dog'): 446F67 HEX('Paws & Claws'): 50617773202620436C617773 HEX('Zebra'): 5A65627261
INET6
MariaDB 10.5.0以降、HEX()
INET6
を使用 引数は、基になる16バイトのバイナリ文字列の16進表現を返します。
例:
SELECT HEX(CAST('2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b' AS INET6));
結果:
+---------------------------------------------------------------+ | HEX(CAST('2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b' AS INET6)) | +---------------------------------------------------------------+ | 20010DB83C4D0015000000001A2F1A2B | +---------------------------------------------------------------+
ここでも同じですが、同じIPv6アドレスの省略形を使用しています:
SELECT HEX(CAST('2001:db8:3c4d:15::1a2f:1a2b' AS INET6));
結果:
+---------------------------------------------------+ | HEX(CAST('2001:db8:3c4d:15::1a2f:1a2b' AS INET6)) | +---------------------------------------------------+ | 20010DB83C4D0015000000001A2F1A2B | +---------------------------------------------------+
ヌル引数
null
を渡す HEX()
へ 結果はnull
:
SELECT HEX(null);
結果:
+-----------+ | HEX(null) | +-----------+ | NULL | +-----------+
引数を渡さない
HEX()
を呼び出す 引数を渡さないとエラーが発生します:
SELECT HEX();
結果:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'HEX'