Spec-Zone .ru
спецификации, руководства, описания, API
|
MySQL поддерживает шестнадцатеричные значения, записанное использование X'
, val
'x'
, или val
'0x
формат, где val
val
содержит шестнадцатеричные цифры (0..9
, A..F
).
Lettercase цифр не имеет значения. Для значений, записанных, используя X'
или val
'x'
формат, val
'val
должен содержать четное число цифр. Для значений, записанных, используя 0x
, значения, которые содержат нечетное число цифр,
обрабатываются как наличие дополнительного продвижения val
syntax0
. Например, 0x0a
и 0xaaa
интерпретируются как 0x0a
и 0x0aaa
.
В числовых контекстах шестнадцатеричные значения действуют как целые числа (64-разрядная точность). В строковых контекстах они действуют как двоичные строки, где каждая пара шестнадцатеричных цифр преобразовывается в символ:
mysql>SELECT X'4D7953514C';
-> 'MySQL'mysql>SELECT 0x0a+0;
-> 10mysql>SELECT 0x5061756c;
-> 'Paul'
Тип значения по умолчанию шестнадцатеричного значения является строкой. Если Вы хотите гарантировать, что
значение обрабатывается как число, можно использовать CAST(... AS UNSIGNED)
:
mysql> SELECT 0x41, CAST(0x41 AS
UNSIGNED);
-> 'A', 65
X'
синтаксис основан на
стандартном SQL. hexstring
'0x
синтаксис основан на ODBC. Шестнадцатеричные строки часто
используются ODBC, чтобы предоставить значения для BLOB
столбцы.
Можно преобразовать строку или число к строке в шестнадцатеричном формате с HEX()
функция:
mysql>SELECT HEX('cat');
-> '636174'mysql>SELECT 0x636174;
-> 'cat'