Spec-Zone .ru
спецификации, руководства, описания, API
|
MySQL supports hexadecimal values, written using X'
, val
'x'
, or val
'0x
format, where val
val
contains hexadecimal digits (0..9
,
A..F
). Lettercase of the digits does not matter. For values written using X'
or val
'x'
format, val
'val
must contain an even number of digits. For values written using 0x
, values that contain an odd number of digits are treated as having an extra leading val
syntax0
. For example, 0x0a
and 0xaaa
are interpreted as 0x0a
and 0x0aaa
.
In numeric contexts, hexadecimal values act like integers (64-bit precision). In string contexts, they act like binary strings, where each pair of hex digits is converted to a character:
mysql>SELECT X'4D7953514C';
-> 'MySQL'mysql>SELECT 0x0a+0;
-> 10mysql>SELECT 0x5061756c;
-> 'Paul'
The default type of a hexadecimal value is a string. If you want to ensure that the value is treated as a
number, you can use CAST(... AS
UNSIGNED)
:
mysql> SELECT 0x41, CAST(0x41 AS
UNSIGNED);
-> 'A', 65
The X'
syntax is based on
standard SQL. The hexstring
'0x
syntax is based on ODBC. Hexadecimal strings are often used by
ODBC to supply values for BLOB
columns.
You can convert a string or a number to a string in hexadecimal format with the HEX()
function:
mysql>SELECT HEX('cat');
-> '636174'mysql>SELECT 0x636174;
-> 'cat'