2010-10-15 3 views
0

Comment puis-je rechercher un utilisateur, même si je ne connais pas l'orthographe exacte en ce qui concerne le cas, commeComment rechercher dans MySQL dans une affaire insensible façon

SELECT * FROM USER WHERE U.NAME = 'STEVEN'; 

Signification: si un utilisateur le nom "Steven" ou "SEVEN" comment puis-je rechercher toutes les personnes qui ont ce nom?

Je l'ai essayé, mais cela ne fonctionne pas.

WHERE email LIKE '%GMAIL%' 

Cela ne fonctionnait pas lorsque le cas était en minuscules.

+0

Quels sont les attributs de votre colonne NAME? –

Répondre

3

Utilisez UPPER

SELECT * FROM USER WHERE UPPER(U.NAME) = 'STEVEN' 
+0

il n'est pas travaillé dans la recherche comme quand j'utilise comme condition –

+0

@InSane, pour l'exemple, si le nom dans la table est SEVEN, le SQL ci-dessus fonctionnerait. "STEVEN" dans le SQL, je suppose que c'est quelque chose comme un paramètre de recherche, donc nous pouvons forcer à être toujours supérieur. – Nivas

+0

@steven, pouvez-vous donner un exemple, où cela ne fonctionne pas? – Nivas

5

La sensibilité de cas est basée sur le caractère et la collation de la table.

Le caractère par défaut jeu et collation sont latin1 et latin1_swedish_ci, si chaîne comparaisons sont non binaire insensibles à la casse par défaut .

http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html

Vous pouvez regarder la collation de votre table si les recherches sont sensibles à la casse.

+0

+1, en le fixant sur la colonne est préférable d'utiliser UPPER/LOWER – Unreason

+0

Bonne réponse enfin. –

Questions connexes