通过sql语句将blob里的char取出来转成数字保存在其它字段
更新时间:2011年09月13日 23:32:08 作者:
现在需要将blob里地17、18、19三个字段里的数据作为数字保存在blob外新增的三个字段Gem1 Gem2 Gem3上。
这个需求是有个表结构,本身设计为
但现在需要将blob里地17、18、19三个字段里的数据作为数字保存在blob外新增的三个字段Gem1 Gem2 Gem3上。
通过下面的sql语句可以做到:
1、增加三个字段:
复制代码 代码如下:
alter table EquipmentInfo add Gem1 TINYINT UNSIGNED default 0;
alter table EquipmentInfo add Gem2 TINYINT UNSIGNED default 0;
alter table EquipmentInfo add Gem3 TINYINT UNSIGNED default 0;
2、使用下面的命令把blob里的数据拷贝出来
update EquipmentInfo set Gem1=conv(substr(HEX(EquipmentBlob),17,2),16,10),Gem2=conv(substr(HEX(EquipmentBlob),19,2),16,10),Gem3=conv(substr(HEX(EquipmentBlob),21,2),16,10);
说明:
HEX(EquipmentBlob) 将EquipmentBlob转成16进制的字符串
substr(str,beginIdx,num) 将str从beginIdx开始的字符串截取出来,截取长度为num
conv(N,from_base,to_base) N是要转换的数据,from_base是原进制,to_base是目标进制。
相关文章
解决MySQL5.1安装时出现Cannot create windows service for mysql.error
这篇文章主要介绍了解决MySQL5.1安装时出现Cannot create windows service for mysql.error:0问题的方法2016-06-06
MySQL最大连接数max_connections设置的两种方法
MySQL的最大连接数可以通过两种方法进行设置,通过命令行临时修改和通过配置文件永久修改这两种方法,本文将通过代码示例给大家详细的讲解一下这两种方法,需要的朋友可以参考下2024-05-05



最新评论