广

MYSQL

  • MYSQL
  • MSSQL
  • Redis
  • MongoDB
  • oracle数据库
  • 数据管理

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

    2018-09-29 11:23:07 次阅读 稿源:互联网
    广告
    全网推广平台,软文发布

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

    image

    但现在需要将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是目标进制。

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告
    广告