您好,欢迎访问一九零五行业门户网

通过sql语句将blob里的char取出来转成数字保存在其它字段

现在需要将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是目标进制。
其它类似信息

推荐信息