有人可以指点一些算法或任何可用于实现此目的的API吗?
我一直在Google上搜索这几个小时,到目前为止找不到任何有用的东西:(
只需保留MD5哈希的前32位或64位。当然,它会使md5的主要特性(=碰撞概率无穷小)无效,但你仍然会得到一个广泛的价值分散,这可能对你的问题来说已经足够了。从其他答案派生的sql函数:
对于bigint:
create function h_bigint(text) returns bigint as $$ select ('x'||substr(md5(),1,16))::bit(64)::bigint;$$ language sql;
对于int:
create function h_int(text) returns int as $$ select ('x'||substr(md5(),8))::bit(32)::int;$$ language sql;总结
以上是内存溢出为你收集整理的在PostgreSQL中将字符串散列为数值全部内容,希望文章能够帮你解决在PostgreSQL中将字符串散列为数值所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)