Murmurhash3 を使用して、テキスト エントリの一意のハッシュを作成しています。テキスト エントリが作成されると、32 ビットのハッシュ整数を返すこの php 実装を使用して、ハッシュ値を取得します。ハッシュは BINARY(16) データベース列に格納されます。また、既存のデータベースを更新する必要があるため、この MySql 実装を使用してデータベースを更新しています。PHPで作成したハッシュに合わせるために、ベース変換して小文字化しています。
UPDATE column SET hash=LOWER(CONV(murmur_hash_v3(CONCAT(column1, column2), 0), 10, 32));
それは約 80% の確率で php バージョンと一致しますが、明らかにそれをカットするつもりはありません。たとえば、文字列「engtest」をハッシュする15d15m
と、php と3uqiuqa
MySql で作成されます。ただし、文字列「engtest 文」は両方で同じハッシュを作成します。私は何が間違っているのでしょうか?