メインコンテンツまでスキップ
に最終更新

HEX

説明​

HEX 関数は入力引数を十六進数の文字列表現に変換します。この関数は MySQL と互換性があり、数値型と文字列型の両方の入力を、それぞれ異なる規則で変換します。

入力引数が数値(BIGINT 型)の場合、その数値の十六進数表現を文字列で返します。

入力引数が文字列の場合、各文字をバイト単位で二桁の十六進数に変換し、変換結果を連結した文字列を返します。

構文​

HEX(<expr>)

パラメータ​

パラメータ説明
<expr>入力引数。BIGINT 型の数値または VARCHAR 型の文字列

戻り値​

入力引数の十六進数表現を表す VARCHAR 型の値を返します。

変換規則:

  • 数値入力: 対応する十六進数の値に変換します(BIGINT の範囲内)
  • 文字列入力: 各バイトを二桁の大文字の十六進数に変換します
  • 負の数値は二の補数のバイナリ形式で変換します

特殊なケース:

  • 引数が NULL の場合は、NULL を返します
  • 数値 0 は '0' に変換されます
  • 空文字列は空文字列に変換されます
  • 負の数値は 64 ビットの二の補数の十六進数表現に変換されます

例​

  1. 数値の基本的な変換
SELECT HEX(12), HEX(-1);
+---------+------------------+
| HEX(12) | HEX(-1) |
+---------+------------------+
| C | FFFFFFFFFFFFFFFF |
+---------+------------------+
  1. 文字列の変換
SELECT HEX('1'), HEX('@'), HEX('12');
+----------+----------+-----------+
| HEX('1') | HEX('@') | HEX('12') |
+----------+----------+-----------+
| 31 | 40 | 3132 |
+----------+----------+-----------+
  1. 大きな整数の変換
SELECT HEX(255), HEX(65535), HEX(16777215);
+----------+------------+----------------+
| HEX(255) | HEX(65535) | HEX(16777215) |
+----------+------------+----------------+
| FF | FFFF | FFFFFF |
+----------+------------+----------------+
  1. NULL 値の扱い
SELECT HEX(NULL);
+-----------+
| HEX(NULL) |
+-----------+
| NULL |
+-----------+
  1. ゼロと空文字列
SELECT HEX(0), HEX('');
+--------+--------+
| HEX(0) | HEX('') |
+--------+--------+
| 0 | |
+--------+--------+