Distância de Hamming em cadeias binárias em SQL

Eu tenho uma tabela no meu banco de dados onde armazeno hashes SHA256 em uma coluna BINARY (32). Estou procurando uma maneira de calcular a distância de Hamming das entradas na coluna para um valor fornecido, ou seja, algo como:

SELECT * FROM table 
  ORDER BY HAMMINGDISTANCE(hash, UNHEX(<insert supplied sha256 hash here>)) ASC 
  LIMIT 10

(caso você esteja se perguntando, a distância de Hamming das cordas A e B é definida comoBIT_COUNT(A^B), onde ^ é o operador XOR bit a bit e BIT_COUNT retorna o número de 1s na cadeia binária).

Agora, eu sei que o operador ^ e a função BIT_COUNT funcionam apenas em INTEGERs e, portanto, eu diria que provavelmente a única maneira de fazer isso seria quebrar as seqüências binárias em substrings, converter cada substring binário em número inteiro, calcular o Distância de Hamming substring-wise e, em seguida, adicioná-los. O problema é que parece terrivelmente complicado, não é eficiente e definitivamente não é elegante. Minha pergunta, portanto, é: você poderia sugerir uma maneira melhor? (observe que estou em hospedagem compartilhada e, portanto, não posso modificar o servidor de banco de dados nem carregar bibliotecas)

edit (1): Obviamente, carregar toda a tabela em PHP e fazer os cálculos seria possível, mas prefiro evitá-la, porque essa tabela provavelmente aumentará bastante.

edit (2): O servidor DB é MySQL 5.1

edit (3): Minha resposta abaixo contém o código que acabei de descrever acima.

edit (4): Acabei de descobrir que o uso de 4 BIGINTs para armazenar o hash em vez de um BINARY (32) produz melhorias maciças na velocidade (mais de 100 vezes mais rápido). Veja os comentários à minha resposta abaixo.

questionAnswers(2)

yourAnswerToTheQuestion