首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >trino md5编码varchar值并将输出作为字符串获得。

trino md5编码varchar值并将输出作为字符串获得。
EN

Stack Overflow用户
提问于 2022-09-15 14:50:32
回答 1查看 131关注 0票数 0

我有一个与postgresql等价的查询:

代码语言:javascript
复制
>> select md5('hello')
5d41402abc4b2a76b9719d911017c592

>> select md5('hello')='5d41402abc4b2a76b9719d911017c592'
True

我正在尝试对trino引擎进行类似的查询。

代码语言:javascript
复制
>> select md5('hello')

Unexpected parameters (varchar(5)) for function md5. Expected: md5(varbinary) io.trino.spi.TrinoException: Unexpected parameters (varchar(5)) for function md5. Expected: md5(varbinary)

因此,我传递了一个varbinary值,类似于:

代码语言:javascript
复制
>> select md5(cast('hello' as varbinary))
 OR
>> select md5(to_utf8('hello'))

5d41402a-bc4b-2a76-b971-9d911017c592 << ignore the hyphens for now
``

Now I'm trying to compare this encoded string with previous `md5` expression:

选择md5(to_utf8('hello'))='5d41402a-bc4b-2a76-b971-9d911017c592'的

不能应用运算符:varbinary= varchar(36) io.trino.spi.TrinoException:函数$operator$equal的意外参数(var二进制,varchar(36))。预期:$operator$equal(T,T) T:可比

代码语言:javascript
复制
This again shows the operator error.

How do I get this value as a string?

I tried `select from_utf8(md5(to_utf8('hello')))` and it gives this weird output:

    ]A@*�K*v�q��Œ
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-15 15:32:04

我能够测试并发现返回的字符串是base64,您需要一个十六进制值给compare.Try,将md5()的值传递给to_hex(),这样就可以了。

代码语言:javascript
复制
 select to_hex(md5(to_utf8('hello')))='5D41402ABC4B2A76B9719D911017C592'

产出:

代码语言:javascript
复制
_col0
true
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73733302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档