gpt4 book ai didi

sql - 如何在 Presto 中对 bigint 运行 md5()?

转载 作者:行者123 更新时间:2023-12-03 00:12:53 26 4
gpt4 key购买 nike

select md5(15)

返回

Query failed (#20160818_193909_00287_8zejd): line 1:8:
Unexpected parameters (bigint) for function md5. Expected: md5(varbinary)

如何哈希 15 并返回一个字符串?我想随机选择 16 个项目中的 1 个,例如其中 md5(id) 如“%3”

仅供引用,我可能使用的是 0.147 版本,不知道如何判断。仅供引用,我发现this PR 。 md5 是跨平台的,这很好,但我会采用依赖于 Presto 的哈希函数,该函数可以相对均匀地传播 id。我想我可以实现我自己的线性公式。看起来很尴尬。

最佳答案

我能想到的最好的办法是将整数转换为 varchar,然后通过 utf8 将其转换为 varbinary,然后在 varbinary 上应用 md5:

presto> select md5(to_utf8(cast(15 as varchar)));
_col0
-------------------------------------------------
9b f3 1c 7f f0 62 93 6a 96 d3 c8 bd 1f 8f 2f f3
(1 row)

如果这不是您得到的结果,您可以随时手动将其转换为十六进制字符串:

presto> select to_hex(md5(to_utf8(cast(15 as varchar))));
_col0
----------------------------------
9BF31C7FF062936A96D3C8BD1F8F2FF3
(1 row)

关于sql - 如何在 Presto 中对 bigint 运行 md5()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39026296/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com