在 MySQL 中插入十六进制值

发布于 2024-10-04 14:42:01 字数 350 浏览 7 评论 0原文

我使用 Java 创建了一个 SQL 数据库。我创建了一个表,其中有两列,第一列是一个递增的大整数,第二列我尝试将其定义为 char、varchar 和二进制。

但我仍然没有获得所需的功能。假设我尝试将十六进制数字 0a 存储到 char 列中,但出现错误。我在开头附加了 0x ,它似乎存储了,但是当我打印出内容时,它是空白的。或者在某些情况下我会收到“/”或“?”等字符。我还尝试使用 SQL 资源管理器,它在查看表时给出了相同的结果,

我的问题是我需要存储一个八个字符的十六进制字符串,例如eb8d4ee6

有人可以告诉我如何做到这一点吗?

I have created an SQL database using Java. I have a table created which has two columns, the first being a big integer which increments, the second I have tried defining it as a char, varchar and binary.

But I'm still not getting the desired functionality. Say I try and store a hex number 0a into the char column and I get an error. I appended 0x to the beginning and it seems to store, but when I print out the contents it is blank. Or in some cases I get characters such as '/' or '?'. I also tried using SQL explorer and it gives me the same result viewing the table,

My problem is I need to store an eight character hex string such as eb8d4ee6.

Could someone please advise me of how this can be done?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

平生欢 2024-10-11 14:42:01

请参阅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 位
精确)。在字符串上下文中,它们
就像二进制字符串一样,其中每个
一对十六进制数字转换为
字符:

您可能应该将十六进制数字存储在整数列中。然后,您可以在使用 HEX() 函数。

例如,

INSERT INTO MyTable (`MyIntegerColumn`) VALUES (0xeb8d4ee6);

See http://dev.mysql.com/doc/refman/5.5/en/hexadecimal-literals.html

MySQL supports hexadecimal values,
written using X'val', x'val', or 0xval
format, where val contains hexadecimal
digits (0..9, A..F). Lettercase of the
digits does not matter. For values
written using X'val' or x'val' format,
val must contain an even number of
digits. For values written using 0xval
syntax, values that contain an odd
number of digits are treated as having
an extra leading 0. 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:

You probably should store the Hex number in an integer column. You can then convert back to hex when selecting using the HEX() function.

E.g.,

INSERT INTO MyTable (`MyIntegerColumn`) VALUES (0xeb8d4ee6);
心凉怎暖 2024-10-11 14:42:01

您可以使用 Json 列:
并使用 JSON.stringify(hex) 插入,您也可以通过选择和比较获得结果

You can use a Json column:
And use JSON.stringify(hex) to insert and you can always get the result via select and compare too

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文