Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.2Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  ...  /  16 進数リテラル

9.1.4 16 進数リテラル

MySQL では、X'val'x'val'、または 0xval 形式を使って記述された 16 進値をサポートしています。この場合、val には 16 進数字 (0..9A..F) を指定します。数字の大文字と小文字は区別されません。X'val' または x'val' 形式で値を記述する場合、val には偶数の桁を入れる必要があります。0xval 構文を使用して値を記述する場合、奇数の桁が含まれる値は、追加の先行 0 が付いているものとして扱われます。たとえば、0x0a0xaaa は、0x0a0x0aaa として解釈されます。

数値のコンテキストでは、16 進値は整数 (64 ビット精度) のように機能します。文字列のコンテキストでは、16 進値はバイナリ文字列のように機能します。この場合、16 進数の各ペアが 1 文字に変換されます。

mysql> SELECT X'4D7953514C';
        -> 'MySQL'
mysql> SELECT 0x0a+0;
        -> 10
mysql> SELECT 0x5061756c;
        -> 'Paul'

16 進値のデフォルトのデータ型は文字列です。この値が数値として扱われるようにしたい場合は、CAST(... AS UNSIGNED) を使用できます。

mysql> SELECT 0x41, CAST(0x41 AS UNSIGNED);
        -> 'A', 65

X'hexstring' 構文は標準 SQL に基づいています。0x 構文は ODBC に基づいています。16 進文字列は、BLOB カラムの値を提供するために、ODBC によって使用されることがよくあります。

文字列または数値を 16 進形式の文字列に変換するには、HEX() 関数を使用できます。

mysql> SELECT HEX('cat');
        -> '636174'
mysql> SELECT 0x636174;
        -> 'cat'

User Comments
Sign Up Login You must be logged in to post a comment.