私はURLとurl_crcフィールドを持つMySQLのテーブル製品を、持っています。私は挿入時に誤ったCRC32を計算しています。MySQLの挿入が間違っCRC32ハッシュ
製品INTO INSERT(URL、url_crc)が ( 'http://www.zappos.com/product/7859366/color/106'、 CRC32( 'http://www.zappos.com VALUES /製品/ 7859366 /カラー/ 106' ))
結果は次のとおりです。(
SELECT CRC32: http://www.zappos.com/product/7859366/color/106、2147483647
しかし、私はこれを行うとき、 'http://www.zappos.com/product/7859366/color/106')
結果は次のとおりです。2838206275
は、なぜこのようなことが起こるのですか? 2838206275 != 2147483647
。
トリガーは役に立ちませんでした。結果は同じです。
CRC32関数から返されるデータ型はINT UNSIGNEDです。これはBIGINTではなく、それを使用する必要があると言います。そうでなければ、32ビットCRCを格納するのに必要な領域の2倍の領域を使用しています。 – SeanN