ハッシュ値(16文字の16進文字列)の比較を実行しようとしています。私はphash VARCHAR(16)
列でこれらの値を格納するMYSQLテーブルがあります。 これは私が何をしようとしていますものです:mysqlでbitwise xor + bit_countを処理するのに問題があります
SELECT phash, bit_count(phash^x'dda15873a3de013d') FROM mytable;
しかしbit_count + XORが正しく行われていません。私はそれゆえ0
XORがゼロのみをもたらす必要がありますので、(2進が同じである、0
のbit_countを取得する必要があり、一方でさえphash='dda15873a3de013d'
のために私は、結果として33
を得る?
編集:ここ 例=>http://sqlfiddle.com/#!9/d7f5c2/1/0
mysql> SELECT phash,BIT_COUNT(CONV(phash, 16, 10)^0xdda15873a3de012d) from mytable limit 1;
+------------------+-----------------------------------------------------+
| phash | BIT_COUNT(CONV(phash, 16, 10)^0xdda15873a3de012d) |
+------------------+-----------------------------------------------------+
| dda15873a3de012d | 33 |
+------------------+-----------------------------------------------------+
私のための作品:http://sqlfiddle.com/#!9/9eecb7d/54806 'phash'にはどのようなデータ型がありますか? –
It's VARCHAR(16) – David
http://sqlfiddle.com/#!9/d7f5c2/1/0を参照してください。 – David