select hex(28) from dual; -- 1C
select unhex(1C) from dual; -- Error 1054 : Unknown Column '1C'
我应该在MySQL中使用什么来Unhex来实现小数值28的结果?
我的最终目标是执行OR操作,所以我正在尝试:
select b'(binary(unhex(1C))' | b'(binary(unhex(F))' from dual; -- Error 1064
我如何实现上述陈述?
答案 0 :(得分:2)
正如Hexadecimal Literals所述:
MySQL支持使用
X'val'
,x'val'
或0xval
格式编写的十六进制值,其中val
包含十六进制数字(0..9
,A..F)
。数字的字母大小无关紧要。对于使用X'val'
或x'val'
格式编写的值, {{1 } 必须包含偶数个数字。对于使用val
语法编写的值,包含奇数个数字的值将被视为具有额外的前导0xval
。例如,0
和0x0a
被解释为0xaaa
和0x0a
。在数字上下文中,十六进制值的作用类似于整数(64位精度)。在字符串上下文中,它们的行为类似于二进制字符串,其中每对十六进制数字都转换为字符:
所以:
0x0aaa
在sqlfiddle上查看。