PostgreSQL
La base de données la plus sophistiquée au monde.

Ouverture de session

Navigation

Contactez-nous

Administration du site :
"equipe chez postgresqlfr point org"

Contact presse :
"fr chez postgresql point org"

Contact association :
"bureau chez postgresqlfr point org"

Questions PostgreSQL :
 IRC :
  serveur irc.freenode.net
  canal #postgresqlfr

Recherche

Accéder aux archives

« Octobre 2008  
Lun Mar Mer Jeu Ven Sam Dim
  2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31  

Syndication

Flux XML

Sondage

Quelle est la version de PostgreSQL la plus répandue sur vos serveurs ?
8.3
10%
8.2
42%
8.1
40%
8.0
2%
7.4
6%
7.3 ou antérieure
0%
Nombre de votes: 48

requete insensible a la casse et au accents

Technique - général | requete insensible a la casse et au accents

Par Dan_S le 16/06/2006 - 12:13

bonjour,

j'ai un petit probleme au niveau d'une requete ( en fait plutot dans les données dans la base )

voila je voudrai faire une recherche en considerai les ô , î , é , ç , à et autre caracteres accentué
comme étant des caractere simples i o e a etc...

éleve, eleve, élève sont confondu par exemple

est-ce possible ?

ma base de données est en UTF8 il me semble.

merci d'avance pour votre aide :)

Options d'affichage des commentaires

Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder les paramètres" pour activer vos changements.

Bonjour

Christophe Chauvet/ = 18 Juin, 2006 - 20:03

Bonjour

Il faut utiliser la fonction to_ascii() mais malheureusement ça ne fonctionne pas en UTF8 voir la doc

Cordialement.

Christophe Chauvet
http://kryskool.org/


Astuce...

Jean-Paul Argudo/ = 21 Juin, 2006 - 09:48

Bonjour,

Effectivement, ça ne marche pas avec l'UTF8 l'astuce consiste donc à transformer l'UTF8 en LATIN9 et ensuite d'utiliser le to_ascii comme suit:

 select to_ascii(convert('ça c''est l''été','UTF8','LATIN9'));
to_ascii
----------------
ca c'est l'ete
(1 ligne)

--
Jean-Paul ARGUDO
www.dalibo.com


ca marche au poil :) merci

Dan_S/ = 31 Juillet, 2006 - 10:39

ca marche au poil :) merci


Juste pour tester

sparky/ = 1 Août, 2006 - 10:20

Que se passe-t'il si on essaie to lower()=lower() ??


a priori lower ne fait que co

Dan_S/ = 8 Août, 2006 - 11:11

a priori lower ne fait que convertir des majuscules en minuscules

les accents sont conservés non ?


j'ai le meme pb... la soluti

aldo31/ = 19 Mars, 2007 - 16:57

j'ai le meme pb...
la solution présentée dans ce post ne fonctionne pas chez moi

lorsque j'exécute la requete :
"select to_ascii(convert('ça c''est l''été','UTF8','LATIN9'));"

postgres me retourne l'erreur suivante :
"ERROR : encoding conversion from UTF8 to ASCII not supported"

alors si ca marche au poil chez toi, comme as-tu fait ?


Pour enlever les accents il e

bigviking/ = 15 Mai, 2007 - 09:22

Pour enlever les accents il existe une autre fonction (moins générique) mais qui fonctionne quelque soit l'encodage:

template1=# select translate('été à reçu','éèêëàâùüçôîï','eeeeaauucoii');
translate
------------
ete a recu
(1 ligne)

Il faut bien sûr que la chaine accentué soit du même encodage que la base de données.
template1=# SHOW server_encoding ;
server_encoding
-----------------
UTF8
(1 ligne)


Quelques questions: Quel e

Jean-Paul Argudo/ = 16 Mai, 2007 - 12:18

Quelques questions:

  1. Quel est l'encodage de la base?
  2. Quel est l'encodage du client? (dans psql: show client_encoding;)
  3. Quel est l'encodage du terminal que vous utilisez?
  4. Quelle version de PostgreSQL utilisez-vous?
  5. Quel est l'OS hôte de PostgreSQL?

Je suis sur une base en LATIN9, l'encodage du client psql est LATIN9, et ma konsole utilise l'encodage iso 8859-15. Mon PostgreSQL est un 8.2.4 sous kubuntu. Et tout marche comme prévu:


jpargudo=# select to_ascii(convert('ça c''est l''été','UTF8','LATIN9'));
to_ascii
----------------
ca c'est l'ete
(1 ligne)

En espérant que cela vous aide!

Cordialement,

--
Jean-Paul ARGUDO
http://dalibo.com | http://dalibo.org


c plutot ca qui marche !

aitali/ = 30 Juillet, 2007 - 12:32

select to_ascii(convert('ça c''est l''été','UTF8','LATIN9'),'LATIN9');


© PostgreSQLFr, tous droits réservés.
Site déclaré à la CNIL sous le numéro 1074678, conformément à la Loi en vigueur.