Par défaut, les recherchez de MySQL ne sont pas sensibles à la
casse (cependant, il existe des jeux de caractères qui ne sont
jamais insensibles à la casse, comme czech
).
Cela signifie que si vous recherchez avec nom_colonne
LIKE 'a%'
, vous aurez toutes les valeurs de la colonne
qui commencent par un A
ou un
a
. Si vous voulez que cette recherche soit
sensible à la casse, utilisez par exemple
INSTR(nom_colonne, "A")=1
pour vérifier un
préfixe. Utilisez STRCMP(nom_colonne, "A") =
0
si la valeur de la colonne doit être exactement
"A"
.
Les opérations de comparaisons simples (>=, >, =
, < , <=
, tri et groupement) sont basées sur la
``valeur de tri'' de chaque caractère. Les caractères avec la
même valeur de tri (comme (comme
‘E
’,
‘e
’ et
‘é
’)) sont considérés comme le
même caractère !
Dans les anciennes versions de MySQL les comparaisons avec
LIKE
étaient effectuées sur la majuscule de
chaque caractère (E == e mais E <> é). Dans les
nouvelles versions LIKE
fonctionne comme les
autres opérateurs de comparaison.
Si vous voulez qu'une colonne soit toujours traitée de fa¸on
sensible à la casse, déclarez là en tant que
BINARY
. See Section 13.2.5, « Syntaxe de CREATE TABLE
».
Si vous utilisez des données chinoises avec l'encodage
big5
, vous devez rendre toutes les colonnes
de chaînes BINARY
. Cela fonctionne car
l'ordre de tri de l'encodage big5
est basé
sur l'ordre des codes ASCII. Depuis MySQL 4.1, vous pouvez
explicitement déclarer une colonne avec le jeu de caractères
big5
:
CREATE TABLE t (name CHAR(40) CHARACTER SET big5);
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.