PDF (US Ltr)
- 26.8Mb
PDF (A4)
- 26.8Mb
MySQL では、X'
、val
'x'
、または val
'0x
形式を使って記述された 16 進値をサポートしています。この場合、val
val
には 16 進数字 (0..9
、A..F
) を指定します。数字の大文字と小文字は区別されません。X'
または val
'x'
形式で値を記述する場合、val
'val
には偶数の桁を入れる必要があります。0x
構文を使用して値を記述する場合、奇数の桁が含まれる値は、追加の先行 val
0
が付いているものとして扱われます。たとえば、0x0a
と 0xaaa
は、0x0a
と 0x0aaa
として解釈されます。
数値のコンテキストでは、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'
構文は標準 SQL に基づいています。hexstring
'0x
構文は ODBC に基づいています。16 進文字列は、BLOB
カラムの値を提供するために、ODBC によって使用されることがよくあります。
文字列または数値を 16 進形式の文字列に変換するには、HEX()
関数を使用できます。
mysql> SELECT HEX('cat');
-> '636174'
mysql> SELECT 0x636174;
-> 'cat'