MySQLでは、16進値をサポートしています。数値のコンテキストでは、16 進値は整数(64 ビット精度)のように動作します。文字列のコンテキストでは、16 進値はバイナリ文字列のように動作します。この場合、16 進数の各ペアが 1 文字に変換されます。
mysql>SELECT x'4D7953514C';
-> 'MySQL' mysql>SELECT 0xa+0;
-> 10 mysql>SELECT 0x5061756c;
-> 'Paul'
16
進値のデフォルトのデータ型は文字列です。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'