gpt4 book ai didi

mysql - 为什么 MySQL 有时会为 BINARY 列添加前导零,如何让它停止?

转载 作者:行者123 更新时间:2023-11-29 10:26:16 25 4
gpt4 key购买 nike

我的 MySQL 数据库中有一个 BINARY(255) 列,我需要它能够准确地存储我放入的二进制数据。

如果我运行查询(UPDATE table SET bindata = 0xffff WHERE id = 1),则数据显示时带有前导零(0ffff0000)。但是,如果我在 0x 之后添加足够的字符(显然是 102?),前导零就会消失,并且插入的值会正确显示。

为什么会发生这种情况?我该如何阻止它?

最佳答案

作为 hexadecimal literals 上的 mysql 文档说:

Values written using 0xval notation that contain an odd number of digits are treated as having an extra leading 0. For example, 0xaaa is interpreted as 0x0aaa.

Mysql 还支持 X'val' 表示法,但如果文字的位数为奇数,则该表示法会引发语法错误。

此限制的原因很简单:

By default, a hexadecimal literal is a binary string, where each pair of hexadecimal digits represents a character.

我不知道有什么方法可以克服这个限制。如果数字位数是奇数,您可能需要在数字右侧填充 0。

关于mysql - 为什么 MySQL 有时会为 BINARY 列添加前导零,如何让它停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48254470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com