Par défaut, MySQL effectue des recherche qui sont insensibles à la casse (bien qu'il existe des caractères qui soient insensible à la casse, tel que czech
. Cela signifie que si vous analysez une colonne avec la formule nom_colonne LIKE 'a%'
, vous allez trouver toutes les lignes qui commence par A
ou a
. Si vous voulez rendre la recherche sensible à la casse, utilisez de préférence INDEX(nom_colonne, "A")=0
pour analyser un préfixe. Ou bien utilisez STRCMP(nom_colonne, "A") = 0
, si la colonne doit être exactement un "A"
.
Les opérateurs de comparaison simples (>=, >, = , < , <=
, tri et regroupement) sont basé sur la valeur de tri de chaque caractère. Les caractères avec la même valeur de tri (comme E, e et 'e) sont traités de la même façon.
Les comparaisons LIKE
sont faites avec les valeurs majuscules de chaque caractère (E == e mais E <> 'e)
Si vous voulez qu'une colonne soit toujours traitée en tenant compte de la casse, appliquez lui l'attribut BINARY
. Voir aussi la section CREATE TABLE
.
Si vous utilisez des données en Chinois, avec l'encodage big5, il est préférable de donner à toutes vos colonnes l'attribut de BINARY
. Cela fonctionnera, car le tri des caractères big5 est basé sur l'ordre ASCII.