The world's most popular open source database
Contact a MySQL Representative
Login | Register
MySQLでは、16進値をサポートしています。数値のコンテキストでは、16 進値は整数(64 ビット精度)のように動作します。文字列のコンテキストでは、16 進値はバイナリ文字列のように動作します。この場合、16 進数の各ペアが 1 文字に変換されます。
mysql> SELECT x'4D7953514C'; -> 'MySQL' mysql> SELECT 0xa+0; -> 10 mysql> SELECT 0x5061756c; -> 'Paul'
SELECT x'4D7953514C';
SELECT 0xa+0;
SELECT 0x5061756c;
16 進値のデフォルトのデータ型は文字列です。16 進値の文字列が確実に数値として扱われるようにするには、その文字列に対してCAST(... AS UNSIGNED)を使用します。
CAST(... AS UNSIGNED)
mysql> SELECT 0x41, CAST(0x41 AS UNSIGNED); -> 'A', 65
SELECT 0x41, CAST(0x41 AS UNSIGNED);
x'hexstring' 構文は標準 SQL に基づいています。0x 構文はODBCに基づいています。16 進文字列は、BLOBカラムの値を提供する目的で、ODBC によって使用されることがよくあります。
x'hexstring'
hexstring
0x
BLOB
文字列または数値を 16 進形式の文字列に変換するには、HEX()関数を使用できます。
HEX()
mysql> SELECT HEX('cat'); -> '636174' mysql> SELECT 0x636174; -> 'cat'
SELECT HEX('cat');
SELECT 0x636174;