我遇到了一个奇怪的问题,两个查询返回具有相同字符串的 CRC32 的不同哈希值。
如果我运行:
SELECT 'http://mywebsite4.com/myvideos', CRC32('http://mywebsite4.com/myvideos');
返回的哈希值为 3769016377。
如果我再跑
INSERT INTO locations (full_url, full_url_hash) VALUES ('http://mywebsite4.com/myvideos', CRC32('http://mywebsite4.com/myvideos'))
插入的哈希值为 2147483647。
我在这里有什么明显的遗漏吗?据我了解,CRC32 函数应始终将相等的字符串散列为相等的 32 位整数,我终其一生都无法弄清楚为什么它们在这种情况下有所不同。
谢谢!