在PostgreSQL中是否有任何哈希函数?[英] Is there any hash function in PostgreSQL?

本文是小编为大家收集整理的关于在PostgreSQL中是否有任何哈希函数?的处理方法,想解了在PostgreSQL中是否有任何哈希函数?的问题怎么解决?在PostgreSQL中是否有任何哈希函数?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我正在使用 Sphinx 来索引我的数据库.问题是我必须通过字符变化字段过滤结果.所以我必须找到一种方法将不同的字符转换为sql_attr_uint.我知道 mysql 中的 CRC32 可以解决问题.PostgreSQL 中有 CRC32 或任何替代品吗?

推荐答案

也许你可以使用decode(substring(md5('foo') for 8), 'hex').这将为您提供该字符串的 md5 哈希的前 4 个字节的 bytea.

您可以使用以下方法将其转换为整数:

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);
$$;

本文地址:https://www.itbaoku.cn/post/1764009.html