メインコンテンツまでスキップ
バージョン: 26.x

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

  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 | |
+--------+--------+