IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

eviter les accent lors d'un select


Sujet :

PostgreSQL

  1. #1
    Membre habitué Avatar de agougeon
    Inscrit en
    Mai 2005
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 253
    Points : 147
    Points
    147
    Par défaut eviter les accent lors d'un select
    Bonjour,
    Je cherche une option dans un postgres qui me permet d'eviter les accent dans ma recherche. Ma base est en UNICODE et lorsque je recherche le mot "résumé" par exempl, j'aimerai le retrouver en cherchant "resume".
    Merci

  2. #2
    Membre émérite
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    Points : 2 545
    Points
    2 545
    Par défaut
    bonjour,
    le plus simple est de te creer une colonne "textesimple" par exemple, et d'y mettre tes valeurs sans les accents :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE matable SET textesimple = translate(monchamp,'àâéèêëîïìôòùû','aaeeeeiiioouu');
    tu peux aussi utiliser la fonction minimizetext que tu trouvera à dans la pages sources à cette adresse :
    http://postgresql.developpez.com/sou...s#minimizetext

    cette fonction permet d'enlever les accents, supprime les espaces, les lettres en doublon, ou plus encore.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE matable SET textesimple = minimizetext(monchamp);
     
    --pour faire un select :
    SELECT * FROM matable where textesimple =minimizetext('résumé');
    pense a creer un index dessus pour les grosses tables.

  3. #3
    Membre habitué Avatar de agougeon
    Inscrit en
    Mai 2005
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 253
    Points : 147
    Points
    147
    Par défaut
    Oui merci et existe t'il un moyen sans ajouter de colonne a ma table... parce que le probleme c'est que je recherche dans plusieurs champ (5) alors je me vois pas rajouter 5 champs pour supprimer les accents.

    Merci

  4. #4
    Membre émérite
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    Points : 2 545
    Points
    2 545
    Par défaut
    ou tu peux, tu met la fonction 2 fois dans le WHERE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM matable WHERE minimizetext(monchamp)=minimizetext('résumé');

  5. #5
    Membre émérite
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    Points : 2 545
    Points
    2 545
    Par défaut
    J'allais oublier de préciser que tu peux aussi creer un index fonctionel pour ce genre d'interrogation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE INDEX idx_monchamp_minimize ON matable (minimizetext(monchamp));

  6. #6
    Membre habitué Avatar de agougeon
    Inscrit en
    Mai 2005
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 253
    Points : 147
    Points
    147
    Par défaut
    Ok, j'ai jamais utiliser de fonction pl/sql... et je suis sous Java et JDBC et je sais pas encore si cela devrai coller. Je pense que oui. Je vais regarder.
    Merci..

    PS : sinon sous postgres y a pas d'equivalent pour collate ou to_ascii?

Discussions similaires

  1. Ignorer les accents lors d'une recherche
    Par Aphox dans le forum Requêtes
    Réponses: 4
    Dernier message: 18/06/2010, 09h22
  2. [MySQL] Problème avec les accent lors d'une recherche dans ma base de donnée
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 16/06/2009, 14h08
  3. Délimiter les colonne lors d'un select
    Par saigon dans le forum SQL
    Réponses: 3
    Dernier message: 21/10/2008, 15h47
  4. Eviter les erreurs lors de l'utilisation des compo Tsocket
    Par Coussati dans le forum Composants VCL
    Réponses: 5
    Dernier message: 01/02/2006, 19h14
  5. Réponses: 4
    Dernier message: 27/10/2005, 11h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo