MySQL中的二进制数据

时间:2010-01-09 03:25:47

标签: mysql binary

我需要在MySQL中存储二进制数据,例如1110000。当我选择它时,我需要将返回值再次设为1110000

我应该使用哪种数据类型?我可以用一下吗?或者varbinary会更好吗?

2 个答案:

答案 0 :(得分:9)

如果你正在处理二进制数字,你可以使用bit field,例如:

bit(64)

是一个位字段,最多有64位有效位(允许的最大大小)。

要插入常量值,您可以使用b'value'表示法,如下所示:

insert into bits values (b'0001001101001');

只需添加0或使用cast()即可将位字段转换为数字。还有方便的bin(),hex()和oct()函数来打印特定基数中的值。

如果非数字,varbinary或blob将是最有效的存储方法。二进制也是可用的(它将使用零字节来填充较短的值)。

如果您不想处理转换,可以将字符串存储在varchar或char中。它只会占用紧凑型varbinary的8倍空间。

要从您的应用程序插入/读取,您需要将序列转换为压缩字节数组,然后将压缩字符串存储在varbinary列中。在C#中你可能会使用BitConverter。在php中你可以使用pack / unpack。

答案 1 :(得分:1)

希望,此代码可以帮助您:


选择

     select conv(column_name, from_base, to_base) from table_name
     //example:
     select conv(column1, 10, 2) from table1;
插入

     insert into table_name(column1) values( B'binary_data') ;
     //example : 
     insert into table1(column1) values( B'1110000');

查询:

    select column1,column2 from table_name where column1 & B('binary_data');
    //example: 
    select column1, column2 from table1 where column1 & B('1110000');