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

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 | |
+--------+--------+
  1. 空白文字(各バイトを二桁の十六進数に変換)
SELECT HEX(' '), HEX('\t'), HEX('\n');
+----------+-----------+-----------+
| HEX(' ') | HEX('\t') | HEX('\n') |
+----------+-----------+-----------+
| 20 | 09 | 0A |
+----------+-----------+-----------+
  1. UTF-8 のマルチバイト文字列
SELECT HEX('ṭṛì'), HEX('ḍḍumai');
+------------------+----------------------+
| HEX('ṭṛì') | HEX('ḍḍumai') |
+------------------+----------------------+
| E1B9ADE1B99BC3AC | E1B88DE1B88D756D6169 |
+------------------+----------------------+
  1. 負の整数(64 ビットの二の補数)
SELECT HEX(-128), HEX(-32768);
+------------------+------------------+
| HEX(-128) | HEX(-32768) |
+------------------+------------------+
| FFFFFFFFFFFFFF80 | FFFFFFFFFFFF8000 |
+------------------+------------------+
  1. 英数字が混在する文字列
SELECT HEX('A1'), HEX('Hello!');
+-----------+---------------+
| HEX('A1') | HEX('Hello!') |
+-----------+---------------+
| 4131 | 48656C6C6F21 |
+-----------+---------------+