PostgreSQL中有散列函数吗?
·
问题:PostgreSQL中有散列函数吗?
我正在使用 Sphinx 来索引我的数据库。问题是我必须通过字符变化字段过滤结果。所以我必须找到一种方法来将不同的字符转换为sql_attr_uint。我知道 mysql 中的 CRC32 可以解决问题。 PostgreSQL 中是否有 CRC32 或任何替代品?
解答
也许你可以使用decode(substring(md5('foo') for 8), 'hex')。这将为您提供该字符串的 md5 哈希的前 4 个字节的字节。
您可以使用以下方法将其转换为整数:
create function bytea_to_integer(bytea)
returns integer strict
language sql as $$
select
(get_byte($1,0)*1::integer<<0*8)
+(get_byte($1,1)*1::integer<<1*8)
+(get_byte($1,2)*1::integer<<2*8)
+(get_byte($1,3)*1::integer<<3*8);
$$;
更多推荐
所有评论(0)