に最終更新
HEX
説明
HEX 関数は入力引数を十六進数の文字列表現に変換します。この関数は MySQL と互換性があり、数値型と文字列型の両方の入力を、それぞれ異なる規則で変換します。
入力引数が数値(BIGINT 型)の場合、その数値の十六進数表現を文字列で返します。
入力引数が文字列の場合、各文字をバイト単位で二桁の十六進数に変換し、変換結果を連結した文字列を返します。
構文
HEX(<expr>)
パラメータ
| パラメータ | 説明 |
|---|---|
<expr> | 入力引数。BIGINT 型の数値または VARCHAR 型の文字列 |
戻り値
入力引数の十六進数表現を表す VARCHAR 型の値を返します。
変換規則:
- 数値入力: 対応する十六進数の値に変換します(BIGINT の範囲内)
- 文字列入力: 各バイトを二桁の大文字の十六進数に変換します
- 負の数値は二の補数のバイナリ形式で変換します
特殊なケース:
- 引数が NULL の場合は、NULL を返します
- 数値 0 は '0' に変換されます
- 空文字列は空文字列に変換されます
- 負の数値は 64 ビットの二の補数の十六進数表現に変換されます
例
- 数値の基本的な変換
SELECT HEX(12), HEX(-1);
+---------+------------------+
| HEX(12) | HEX(-1) |
+---------+------------------+
| C | FFFFFFFFFFFFFFFF |
+---------+------------------+
- 文字列の変換
SELECT HEX('1'), HEX('@'), HEX('12');
+----------+----------+-----------+
| HEX('1') | HEX('@') | HEX('12') |
+----------+----------+-----------+
| 31 | 40 | 3132 |
+----------+----------+-----------+
- 大きな整数の変換
SELECT HEX(255), HEX(65535), HEX(16777215);
+----------+------------+----------------+
| HEX(255) | HEX(65535) | HEX(16777215) |
+----------+------------+----------------+
| FF | FFFF | FFFFFF |
+----------+------------+----------------+
- NULL 値の扱い
SELECT HEX(NULL);
+-----------+
| HEX(NULL) |
+-----------+
| NULL |
+-----------+
- ゼロと空文字列
SELECT HEX(0), HEX('');
+--------+--------+
| HEX(0) | HEX('') |
+--------+--------+
| 0 | |
+--------+--------+