9.1.4 16 진수 리터럴
MySQL에서는 X'
, x val
'
또는 x' val '
0x
형식을 사용하여 작성된 16 진수 값을 지원하고 있습니다. 이 경우 val
val
는 16 진수 숫자 ( 0..9
, A..F
)을 지정합니다. 숫자 대문자와 소문자는 구별되지 않습니다. X'
또는 val
'x'
형식의 값을 작성하는 경우 val
'val
은 짝수 자리를 넣을 필요가 있습니다. 0x
구문을 사용하여 값을 작성할 때 홀수의 숫자가 포함 된 값은 추가 선행 val
0
을 가진 것으로 간주됩니다. 예를 들어, 0x0a
와 0xaaa
는 0x0a
와 0x0aaa
로 해석됩니다.
숫자 컨텍스트에서는 16 진수 정수 (64 비트 정밀도)처럼 작동합니다. 문자열의 맥락에서, 16 진수 값은 이진 문자열처럼 작동합니다. 이 경우 16 진수의 각 쌍은 1 문자로 변환됩니다.
mysql>SELECT X'4D7953514C';
-> 'MySQL' mysql>SELECT 0x0a+0;
-> 10 mysql>SELECT 0x5061756c;
-> 'Paul'
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'