どうやら MySQL の CRC32() 関数は符号なしの BIGINT を返しますが、PHP は 16 進数値を返します。
PHP の場合:
hash('crc32','hello world') == 7813f744
MySQL では:
SELECT CRC32('hello world') == 222957957
PHP CRC32 値は CHAR(8) 列に格納されます。
PHP で生成されたハッシュを、MySQL がSQL のみを使用して生成するのと同じ値に変換する方法がわかりません。明らかなことはうまくいかないようです:
SELECT HEX(CRC32('hello world')) == D4A1185
SELECT CONV('7813f744',16,10) == 2014574404
何か案は?