Busca case-sensitive no MySQL

Opa opa… Essa é outra dúvida muito comum:

Quando fazemos uma busca “comum” no MySQL, se procuramos ‘Thiago’ e no registro tá ‘thiago’ esse registro é retornado… Mas quando precisamos de uma validação mais rídiga (login e/ou senha, por exemplo), é sempre bom que ela seja case-sensitive, ou seja: BoLa é diferente de BOLA que é diferente de bola.

Uma busca normal no mysql seria mais ou menos assim:

SELECT * FROM `usuarios` WHERE `nome` = 'AdmiN' LIMIT 1

Mas como eu disse, isso retornaria registros com ‘admin’, ‘ADMIN’ ou ‘AdMiN’ no campo nome, e não é isso que queremos… Então fazemos assim:

SELECT * FROM `usuarios` WHERE BINARY `nome` = 'AdmiN' LIMIT 1

E tudo se resolve! =)

10 ideias sobre “Busca case-sensitive no MySQL

  1. Dayanne

    Thiago, no minha consulta, estou comparando dois campos,
    só que apenas no primeiro campo que fica case sensitive, o outro não.
    como faço para os dois ficarem sensitive?
    obrigada

  2. Dayanne

    Thiago, no minha consulta, estou comparando dois campos,
    só que apenas no primeiro campo que fica case sensitive, o outro não.
    como faço para os dois ficarem sensitive?
    obrigada

  3. MacGyver

    Foi muito útil essa informação, agora o login administrativo do meu site está “case sentive”. Obrigado pela dica.

  4. Luis

    Mto bom, kra. Simples e prático. Vc sabe se existe algum risco de dar errado com outros tipos de dados, tipo char, numeros, algo assim ??

  5. Lucio

    Muito legal a dica.
    Será q tem como vc me ajudar com essa validação no Cake (vi q vc mexe com ele tb)? Eu estou precisando muito fazer 1 validação, mas ta difícil

Os comentários estão fechados.