我想将 SHA1 哈希存储到 BINARY(20) 列中。我尝试了准备,INSERT INTO foo SET ( hash=? )
然后执行绑定到包含 20 字节二进制值的变量的语句,但出现运行时语法错误“... hash='\0\0#*$^!...'”。(我很困惑为什么执行一个准备好的语句会代表这样的值。) 这篇文章并没有表明将 SHA1 存储到 BINARY(20) 列有什么问题,但没有说明它是如何使用 SQL 完成的。
更新:“为什么是二进制而不是十六进制?” 将有大约 10 亿行,因此 20 个额外的字节很重要,而且我被告知数字查找的速度是字符串查找的两倍(并且 BINARY 字段将被视为数字)
更新 2:错误消息不是抱怨二进制值的表示,而是抱怨 SET 列表周围的括号。