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

MysqL教程通过sql语句将blob里的char取出来转成数字保存在其它字段》要点:
本文介绍了MysqL教程通过sql语句将blob里的char取出来转成数字保存在其它字段,希望对您有用。如果有疑问,可以联系我们。

这个需求是有个表结构,本身设计为 MysqL学习

image

MysqL学习

但现在需要将blob里地17、18、19三个字段里的数据作为数字保存在blob外新增的三个字段Gem1 Gem2 Gem3上. MysqL学习

通过下面的sql语句可以做到:
1、增加三个字段:
MysqL学习

代码如下:

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,Gem3=conv(substr(HEX(EquipmentBlob),21,10);
说明:
HEX(EquipmentBlob) 将EquipmentBlob转成16进制的字符串
substr(str,beginIdx,num) 将str从beginIdx开始的字符串截取出来,截取长度为num
conv(N,from_base,to_base) N是要转换的数据,from_base是原进制,to_base是目标进制.

相关文章

MySQL 死锁 是指两个或多个事务互相等待对方持有的锁,从而导...
在MySQL中,InnoDB引擎通过Next-Key Locking技术来解决幻读问...
在数据库事务管理中,Undo Log 和 Redo Log 是两种关键日志,...
case when概述 sql语句中的case语句与高级语言中的switch语句...
其实很简单,只是为了忘记,做个记录,用的时候方便。 不管是...
1.进入服务,找到mysql服务,在属性里找到mysql的安装路径 2...