HEX
説明
HEX関数は入力パラメータを16進数文字列表現に変換します。この関数はMySQL互換であり、異なる変換ルールを持つ数値と文字列の両方の入力タイプをサポートしています。
入力パラメータが数値(BIGINT型)の場合、その数値の16進数文字列表現を返します。
入力パラメータが文字列の場合、各文字を(バイト単位で)2つの16進数文字に変換し、変換されたすべての文字を結果文字列に連結します。
構文
HEX(<expr>)
パラメータ
| Parameter | デスクリプション |
|---|---|
<expr> | 入力パラメータ。BIGINT型の数値またはVARCHAR型の文字列を指定可能 |
Return Value
VARCHAR型を返します。入力パラメータの16進数表現を表します。
変換規則:
- 数値入力: 対応する16進数値に変換(BIGINT範囲内)
- 文字列入力: 各バイトを2文字の大文字16進数文字に変換
- 負の数は2の補数のバイナリ形式で変換
特殊なケース:
- パラメータがNULLの場合、NULLを返す
- 数値0は'0'に変換
- 空文字列は空文字列に変換
- 負の数は64ビット2の補数の16進数表現に変換
Examples
- 基本的な数値変換
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 | |
+--------+--------+