我使用Java创建了一个sql数据库,但是当涉及到sql时,我是一个菜鸟 有它配置和设置,我有一个表有两列,第一列是 一个大的整数递增,第二个我尝试将它定义为char,varchar和二进制但我仍然没有得到所需的函数,说我尝试并存储0a十六进制数字 char列我得到一个错误,我将0x添加到它似乎存储的开头,但是当我打印出内容时它是空白的,或者在某些情况下我得到的字符如'/'或'?',我也尝试过使用sql explorer,它给我看同样的结果,
我的问题是我需要存储八个字符的十六进制字符串,例如eb8d4ee6。
有人可以告诉我如何做到这一点吗?
答案 0 :(得分:4)
这是一篇很棒的博客文章,我总是提醒自己正确处理十六进制值和二进制字段,并列出了一些性能影响。
http://www.xaprb.com/blog/2009/02/12/5-ways-to-make-hexadecimal-identifiers-perform-better-on-mysql/
答案 1 :(得分:2)
请参阅http://dev.mysql.com/doc/refman/5.5/en/hexadecimal-literals.html
MySQL支持十六进制值, 使用X'val',x'val'或0xval编写 格式,其中val包含十六进制 数字(0..9,A..F)。信箱 数字并不重要。对于价值观 使用X'val'或x'val'格式编写, val必须包含偶数个 数字。对于使用0xval编写的值 语法,包含奇数的值 数字被视为具有 额外的前导0.例如,0x0a 和0xaaa被解释为0x0a和 0x0aaa。
在数字上下文中,十六进制 值就像整数一样(64位 精确)。在字符串上下文中,它们 像二进制字符串一样,每个字符串 一对十六进制数字转换为a 字符:
您可能应该将十六进制数存储在整数列中。然后,在使用HEX()
函数进行选择时,您可以转换回十六进制。
如,
INSERT INTO MyTable (`MyIntegerColumn`) VALUES (0xeb8d4ee6);