您的位置:首页技术文章
文章详情页

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

【字号: 日期:2023-06-23 19:40:37浏览:7作者:猪猪
目录MySQL查询varbinary的数值mysql中varbinary什么意思_sql中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

扩展资料:

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内容请搜索好吧啦网以前的文章或继续浏览下面的相关文章希望大家以后多多支持好吧啦网!

标签: MySQL 数据库