Vous avez sans doute déjà travaillé avec des bases de données tel que MySQL, PostgreSQL ou autre...
Lors de l'utilisation d'une base MySQL on créer des tables. Dans ces tables nous créons différents champs.
Par exemple sur mon site je veux faire un système d'authentification, je vais donc créer une table "login" avec dedans mes utilisateurs et mots de passe par exemple.
Lors de la création de la table vous avez plusieurs choix déjà le nombre de colonnes pour savoir le nombre de champs :
![]()
Dans notre cas 3 :
L'id, L'identifiant, Le mot de passe.
Ensuite pour chaque champs nous devons indiquer :
- Un nom (id, login, pass)
- Un type (int, varchar, text etc...)
- La taille ou La valeur par exemple 255 pour un varchar ou par exemple ("yes", "no") si on fait un enum et qu'on veut une réponse prédéfinie
- L'interclassement :
Il comprend :
-> le jeu de caractère (ASCII, UTF8, LATIN1 etc...)
-> l'interclassement ou collation (Swedish, French ...)
-> le "_ci" ou "_cs".
A quoi sert l'interclassement ? Lorsque l'on utilise ORDER BY l'interclassement va en fonction de la langue ordonner différemment les résultats. Donc ça peut être très utile !
Alors qu'est ce que le fameux "_ci", "_cs" "_bin" ?
"_ci" pour Case Insensitive,
"_cs" pour Case Sensitive
"_bin" pour Binaire.
Voici les enregistrements dans ma table :
id login pass 1 ChoiZ 123456 2 choiz azerty 3 cHOIz 654321 4 CHOIZ AzertY 5 test test
Imaginons que vous vouliez sélectionner le champ login dans votre table, si il est en "_ci" :
SELECT password FROM users WHERE login="ChoiZ"
SELECT password FROM users WHERE login="choiz"
retournerons les mêmes résutats soit :
Pour le premier et le second cas les colonnes :
1 ChoiZ 123456 2 choiz azerty 3 cHOIz 654321 4 CHOIZ AzertY
En revanche si "_cs" est utilisé :
SELECT password FROM users WHERE login="ChoiZ"
cette requette retournera uniquement la premiere ligne soit :
1 ChoiZ 123456
SELECT password FROM users WHERE login="choiz"
cette requette retournera uniquement la seconde ligne soit :
2 choiz azerty
J'espère que ce billet vous sera utile dans vos futurs développements.

4 commentaires pour “MySQL : A quoi sert ci dans utf8_general_ci ?”
ChoiZ
Je sais qu'il y a un problème d'affichage avec les " qui sont tel que : « ou » faute à WordPress... Je suis en train de chercher pourquoi
sirlepape
Pour les guillemets
http://www.jonathan-petitcolas.com/maudits-guillemets-typographiques-sous-wordpress/
ChoiZ
Merci @sirelepape et a Jonathan pour son billet
Woodgate
C'est bon à savoir !
Laisser un commentaire