|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : décembre 2004 Messages : 2 ![]() |
Lorsque j'effectue une requête par exemple select * from table where ville="montreal"... les resultats affichés ne vont pas inclure ceux qui contienne "montréal" avec l'accent aigu... qqn pourrait m'aider ou m'indiquer comment dire a postgre d'ignorer les accents....et j'oubliais la technique de "remplacement" faut laisser tomber..trop lourd
Rich |
|
|
00
|
|
|
#2 |
|
Futur Membre du Club
![]() Inscription : juillet 2004 Messages : 13 ![]() |
Tu peux essayer la fonction to_ascii() à condition que le volume d'enregistrements ne soit pas pharaonique. Dans ton cas ça donnerait à peu près cela (à condition d'utiliser un encodage latin1) :
select * from table where to_ascii(ville,'LATIN1')='montreal'; |
|
|
00
|
|
|
#3 | |
|
Invité de passage
![]() Inscription : décembre 2004 Messages : 2 ![]() |
Citation:
|
|
|
|
00
|
|
|
#4 |
|
Futur Membre du Club
![]() Inscription : juillet 2004 Messages : 13 ![]() |
C'est normal avec la solution proposée qui suppose que tu maîtrises que le côté droit de l'expression, ce qui me semblait être le cas. D'une façon générale, 2 solutions :
1/ tu maîtrises le nom de la ville lors de la requête 2/ tu utilises des fonctions du type to_ascii(), upper(), ou LIKE (ou ILIKE c'est selon) ou des expressions rationnelles. Les fonctions peuvent bien entendu être imbriquées et utilisées des deux côtés de l'opérateur d'égalité. Pour ce qui me concerne je ne vois pas d'autre alternative. Pour faire simple soit tu sais exactement ce que tu recherches et c'est la solution 1, soit tu sais à peu près et c'est la solution 2 |
|
|
00
|
|
|
#5 |
|
Membre émérite
![]() ![]() Inscription : mars 2002 Messages : 770 ![]() |
Pour optimiser la recherche si ta table est importante, tu peux creer un index fonctionnel, par exemple :
Code :
CREATE INDEX idxtoascii ON TABLE (to_ascii(ville)); |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com