Buenas pessoal, tempão sem postar nada, a vida anda corrida demais, esse artigo está para ser escrito faz um tempão, e como ele é curto eu resolvi postar de uma vez ele. Nele vou lhes apresentar uma solução para realizarmos consultas case sensitive no Mysql.
Para começar, caso você utilize um campo de texto no Mysql como VARCHAR, TEXT, etc, na hora de fazer uma consulta ele não considerará se seu texto comparado está exatamente igual ao texto da comparação quando falamos em Maiúsculas/Minúsculas. Então para resolver isso, devemos fazer um casting na comparação utilizando o operador BINARY do Mysql. De longe essa é a alternativa mais simples que eu encontrei, existem outras, que envolvem mudar o COLLATE durante a consulta, mas não me pareceu elegante nem muito promissor.
A função do operador BINARY é muito simples, ele transforma todo o texto passado pra ele em código binário, logo “x” em binário é totalmente diferente de “X”. Abaixo alguns exemplos:
SELECT "x" = "X";
retorna 1
SELECT binary "x" = "X"
retorna 0
É claro que além dessa comparação simples ele é aceito na comparação LIKE:
SELECT binary "xorna" LIKE "%X%"
retorna 0
SELECT binary "Xorna" LIKE "%X%"
retorna 1
É simples, funciona, eu diria que isso é um workaround elegante (se é que existe isso).
















Bancana gostei