如何利用MySQL查询varbinary中存储的数据

MySQL查询varbinary的数值

如何利用MySQL查询varbinary中存储的数据?这里记录下例子

SELECT ORD(SUBSTRING(`binary_column`, 1, 1)) AS converted_value FROM `TableName`;

上述语句中,SUBSTRING(binary_column, 1, 1) 会提取字段中的第一个字节。然后,ORD() 函数会将该字节转换为对应的 ASCII 值,因为 unpack() 函数返回的是一个字节流。

这样,你将得到一个名为 converted_value 的列,其中存储了通过 MySQL 查询得到的值为 1 的整数。

请注意,这种方法假设字段中的值是按照字节顺序存储的。如果存储方式不同,可能需要相应地调整提取和转换的逻辑。

用 php的 unpack 函数解析的形式,比如上面的例子,要解出一个整型(int32)可以这样表示,unpack('Iintval', $bindata)

mysql中varbinary什么意思_sql中varbinary 是什么数据类型

varbinary 类型和char与varchar类型是相似的,只是他们存储的是32313133353236313431303231363533e59b9ee7ad9431333431363564二进制数据,也就是说他们是包含字节流而不是字符流,他们有二进制字符的集合和顺序,他们的对比,排序是基于字节的数值进行的

binary与varbinary的最大长度和char与varchar是一样的,只不过他们是定义字节长度,而char和varchar对应的是字符长度。Varbinary是一个可以改变长度的二进制数据。

Varbinary[(n)] 是 n 位变长度的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储窨的大小是 n + 4个字节,不是n 个字节。

varbinary在插入不会去填补0x00字节,查询的时候也不会丢弃任何字节,在比较的时候,所有的字节都是有效的,并且0x00

de266b0c1f75da4b4eca8f6104028a90.png

扩展资料:

varbinary( n | max):可变长度,n 的取值范围为 1 至 8,000,max 是指最大存储空间是 2^31-1 个字节,即最大4GB;

在将数据转换为二进制数据时,SQL Server会对生成的二进制数据进行填充或截断,详细的规则是:

1、填充(或扩展)的二进制数据是16进制的0x00的整数倍,这就是说,填充的字节中每一个bit都是0;

2、将字符类型转换成二进制数据时,在数据的右侧填充或截断数据,填充数值是0x00;

3、将其他类型数据转换成二进制数据时,在数据的左侧填充或截断数据,填充数值是0x00;在截断数据时,保留低位的数据,将高位数值截断。

到此这篇关于MySQL查询varbinary的数值的文章就介绍到这了,更多相关mysql查询varbinary内容请搜索aitechtogether.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持aitechtogether.com!

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2023年12月28日
下一篇 2023年12月28日

相关推荐

此站出售,如需请站内私信或者邮箱!