ハッシュ値 (16 文字の 16 進文字列) を比較しようとしています。phash VARCHAR(16)
これらの値を列に格納する MYSQL テーブルがあります。これは私がやろうとしていることです:
SELECT phash, bit_count(phash ^ x'dda15873a3de013d') FROM mytable;
しかし、bit_count + xor は正しく行われません。取得する必要があるのに結果としてphash='dda15873a3de013d'
取得する場合でも(2 つの 16 進数は同じであるため、xor はゼロのみを生成する必要があるため、bit_count は 0.33
0
なにが問題ですか?ありがとうございました
編集:ここに例=> 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 |
+------------------+-----------------------------------------------------+