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'
