gpt4 book ai didi

mysql - 将二进制 SHA1 哈希存储到 mySQL BINARY(20) 列中

转载 作者:可可西里 更新时间:2023-11-01 07:30:55 25 4
gpt4 key购买 nike

我想将 SHA1 哈希存储到 BINARY(20) 列中。我尝试通过准备 INSERT INTO foo SET ( hash=? ) 然后执行绑定(bind)到包含 20 字节二进制值的变量的语句,但出现运行时语法错误“... hash= '\0\0#*$^!...'”。 (我很困惑为什么执行准备好的语句会表示这样的值。)This post不表示将 SHA1 存储到 BINARY(20) 列有任何问题,但不表示它是如何用 SQL 完成的。

更新:“为什么是二进制而不是十六进制?”将有大约 10 亿行,因此 20 个额外字节很重要,而且我还被告知数字查找的速度是字符串查找的两倍(并且 BINARY 字段将被视为数字)

更新 2:错误消息不是提示二进制值的表示,而是提示 SET 列表周围的括号。

最佳答案

使用 UNHEX在插入之前翻译它的功能:

 INSERT INTO foo SET hash=UNHEX('0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33');

您将解决空间需求,但在将哈希从二进制转换为十六进制再转换回二进制时,您可能会遇到一些性能问题。

关于mysql - 将二进制 SHA1 哈希存储到 mySQL BINARY(20) 列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14608413/

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