加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

postgresql – 将字符串散列到PostgresSQL中的数值

发布时间:2020-12-13 16:40:02 所属栏目:百科 来源:网络整理
导读:我需要将存储在我的数据库中的字符串转换为数值。结果可以是整数(首选)或Bigint。此转换将在PlPgSql存储过程的数据库端完成。 有人可以请我指出一些可以用来实现这一点的算法或API吗? 我已经在Google上搜索了几个小时,目前还没有找到任何有用的东西:( 只保
我需要将存储在我的数据库中的字符串转换为数值。结果可以是整数(首选)或Bigint。此转换将在PlPgSql存储过程的数据库端完成。

有人可以请我指出一些可以用来实现这一点的算法或API吗?

我已经在Google上搜索了几个小时,目前还没有找到任何有用的东西:(

只保留MD5哈希的前32位或64位。当然,它会使md5的主要属性(=碰撞的可能性是无穷小)失效,但是你仍然可以获得广泛的价值观,这对你的问题来说是足够好的。

SQL函数派生自其他答案:

对于bigint:

create function h_bigint(text) returns bigint as $$
 select ('x'||substr(md5($1),1,16))::bit(64)::bigint;
$$ language sql;

对于int:

create function h_int(text) returns int as $$
 select ('x'||substr(md5($1),8))::bit(32)::int;
$$ language sql;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读