为了提高系统的速度,我准备将系统中的字符串转换成数字。
这样可以提高字符串的比对效率。比如用户登录的时候账号,密码对比的速度。
我现在写了一个算法将admin进行加密,得到一个32位的整数:55655355655365555251565752654869
我写的函数可以将任意一串长度的字符串转换成32位的整数。但是现在关键是这个32位的整数怎样可以存到数据库中?我试过好多类型都不行,float型可以。还有其他的类型可以么?
这样可以提高字符串的比对效率。比如用户登录的时候账号,密码对比的速度。
我现在写了一个算法将admin进行加密,得到一个32位的整数:55655355655365555251565752654869
我写的函数可以将任意一串长度的字符串转换成32位的整数。但是现在关键是这个32位的整数怎样可以存到数据库中?我试过好多类型都不行,float型可以。还有其他的类型可以么?
cast as varbinary
decimal 和 numeric
带定点精度和小数位数的 numeric 数据类型。decimal[(p[, s])] 和 numeric[(p[, s])]定点精度和小数位数。使用最大精度时,有效值从 - 10^38 +1 到 10^38 - 1。decimal 的 SQL-92 同义词是 dec 和 dec(p, s)。p(精度)指定小数点左边和右边可以存储的十进制数字的最大个数。精度必须是从 1 到最大精度之间的值。最大精度为 38。s(小数位数)指定小数点右边可以存储的十进制数字的最大个数。小数位数必须是从 0 到 p 之间的值。默认小数位数是 0,因而 0 <= s <= p。最大存储大小基于精度而变化。精度 存储字节数
1 - 9 5
10-19 9
20-28 13
29-38 17
create table tb(val decimal(32,0))insert into tb values(55655355655365555251565752654869)select * from tbdrop table tb/*
val
----------------------------------
55655355655365555251565752654869(所影响的行数为 1 行)
*/