Bonjour, -soir,
Après de nombreuses recherches vaines sur le net, je me résous à poser ici une question -sans doute- très basique concernant une commande SQL qui ne retourne pas le résultat attendu. Pour information, j'utilise MySQL dans sa version 5.0.27.
Pour l'exemple, supposons que ma base de données ne contient qu'une table 'articles' avec un champ 'id' et un champ 'title'. Le contenu de la table se compose des enregistrements suivants:
id title
-----------------------------------
1 test.mySQL1
2 test.mySql2
3 test.mysql3
Ma 1ère commande (cf ci-dessous) retourne le résultat attendu:
Or, si je change la 1ère sélection afin d'y intégrer le 's' (en minuscule), je n'obtiens plus qu'un seul enregistrement alors que je m'attendais à avoir le même résultat que précédemment:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 mysql> SELECT title FROM articles WHERE title LIKE '%est.my%' ORDER BY id DESC; +-------------+ | title +-------------+ | test.mysql3 | test.mySql2 | test.mySQL1 +-------------+ 3 rows in set (0.00 sec)
Ayant lu à plusieurs reprises (e.g. http://dev.mysql.com/doc/refman/5.0/...nsitivity.html ) que, par défaut, les recherches de MySQL ne sont pas sensibles à la casse (i.e. le jeu de caractères que j'utilise sont soit 'latin1_german1_ci' ou 'utf8_bin'), j'en viens à mettre en doute de telles affirmations.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 mysql> SELECT title FROM articles WHERE title LIKE '%est.mys%' ORDER BY id DESC; +-------------+ | title +-------------+ | test.mysql3 +-------------+ 1 row in set (0.00 sec)
Soupçonnant qu'il y a un paramètre que j'ai dû omettre ou je ne sais quoi d'autre, je remercie d'avance quiconque serait en mesure de me fournir un indice ou une réponse complète sur le sujet.
Loris
Partager