ホームページ > データベース > mysql チュートリアル > 通过sql语句将blob里的char取出来转成数字保存在其它字段_MySQL

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

WBOY
リリース: 2016-06-01 13:22:13
オリジナル
1108 人が閲覧しました

bitsCN.com

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

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是目标进制。

bitsCN.com
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート