php脚本l导出mysq的blob格式数据-hex和unhex的用法 (2)

翻译:如果UNHEX()的参数是BINARY列,则可能会出现NULL结果,因为在存储时会使用0x00字节填充值,但这些字节在检索时不会被剥离。 例如,'aa'作为'aa'存储在CHAR(3)列中,并作为'aa'检索(尾随填充空间被剥离),因此列值的UNHEX()返回'A'。 相比之下,'aa'作为'aa \ 0'存储在BINARY(3)列中,并作为'aa \ 0'检索(尾随填充0x00字节未被剥离)。 '\ 0'不是合法的十六进制数字,因此列值的UNHEX()返回NULL。

综上,简单点理解就是

导出时采用HEX函数读取数据,把二进制的数据转为16进制的字符串;

select HEX(binField) from testTable;

//查询出来的数据是一串可以展示的字符串,可以导出为sql语句,

//但是要恢复,要是用其逆转函数UNHEX将数据格式化导入

//导入时采用UNHEX函数,把16进制的字符串转为二进制的数据导入库中;

insert into testTable binField values(UNHEX(@hexstr));

//这样格式化后,可以完整的将数据导进去。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsxdzf.html