|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : mai 2011 Messages : 205 ![]() |
Bonjour,
Je cherche à faire l'affichage de détails de personnes d'une table, mon probleme c'est que ces noms peuvent etre écrit en minuscule ou en majuscule ou bien combiné et quand je faisais cette requette Code :
SELECT * FROM Personne WHERE Nom LIKE '%Toto%' Merci |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
Saluton,
Bizarre, je croyais que LIKE n'était pas sensible à la casse. La colonne Nom a-t-elle un attribut BINARY ?
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : mai 2011 Messages : 205 ![]() |
Oui c'est comme tu as dis Maljuna Kris j'ai l'attribut entrelacement à utf8_bin mais en essayant de le changer( le laisser vide) la mise à jour ne se fait pas mais en le changeant en un autre type utf8_tur la mise à jour ca se fait et le résultat de la requête est bon est ce qu'il y a une explication
|
|
|
00
|
|
|
#4 |
![]() ![]() Yves Développeur informatique Inscription : janvier 2007 Messages : 3 880 ![]() |
LIKE n'est pas sensible à la casse, mais si la base ou le serveur a été configuré Case Sensitive, effectivement les recherches peuvent être impactées.
Ce que tu peux faire, c'est justement d'utiliser les minuscule ou majuscule dans la recherche, style : Code :
SELECT * FROM Personne WHERE ucase(Nom) LIKE '%TOTO%' Code :
SELECT * FROM Personne WHERE lcase(Nom) LIKE '%toto%'
__________________
Sevyc64 --- Le partage est notre force NON AU LANGAGE SMS & FAUTES VOLONTAIRES SUR LES FORUMS |
|
|
00
|
|
|
#5 | |
|
Nouveau Membre du Club
![]() Inscription : mai 2011 Messages : 205 ![]() |
Salut sevyc64 quand tu disais
Citation:
Tandis que pour ta réponse Code :
SELECT * FROM Personne WHERE ucase(Nom) LIKE '%TOTO%' |
|
|
|
00
|
|
|
#6 |
![]() ![]() |
La fonction UCASE passe tous les caractères de la chaîne en majuscules, que celle-ci en contienne ou pas. Du coup la comparaison peut se faire de majuscules à majuscules donc sans tenir compte de la casse.
Si la chaîne de caractères à tester peut contenir des minuscules tu fais ceci : Code :
WHERE UCASE(Nom) LIKE UCASE('%ta_variable%')
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#7 | ||
![]() ![]() Yves Développeur informatique Inscription : janvier 2007 Messages : 3 880 ![]() |
Citation:
Citation:
Donc tu dois récupérer les noms tout en minuscules, tout en majuscule ou contenant minuscules et majuscule.
__________________
Sevyc64 --- Le partage est notre force NON AU LANGAGE SMS & FAUTES VOLONTAIRES SUR LES FORUMS |
||
|
|
00
|
|
|
#8 |
|
Nouveau Membre du Club
![]() Inscription : mai 2011 Messages : 205 ![]() |
Je suis désolé vous avez tout a fait raison j'ai mal analysé le truc
PS: Je viens de me réveiller
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com