显然,MySQL的CRC32()函数返回一个无符号BIGINT,而PHP返回十六进制值。
在PHP:
hash('crc32','hello world') == 7813f744
在MySQL:
SELECT CRC32('hello world') == 222957957
在CRC32的值存储在一个CHAR(8)柱。
我无法弄清楚如何打开PHP生成散列成MySQL的只有SQL产生相同的值。 最明显的似乎不工作:
SELECT HEX(CRC32('hello world')) == D4A1185
SELECT CONV('7813f744',16,10) == 2014574404
有任何想法吗?