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

Requêtes PostgreSQL Discussion :

Recherche sans ponctuation


Sujet :

Requêtes PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2003
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 020
    Par défaut Recherche sans ponctuation
    Bonjour,

    Je dois rechercher des clients par leur n° de tel. Les données sont très hétérogènes et les n° peuvent être écrits de différentes manières '01.02.03.04.05' ou '01 02 03 04 05' ou '01-02-03-04-05' ou encore '0102030405'.

    Comment puis-je par une requête simple rechercher tous les clients dont le n° commence par '0102' sans tenir compte de la ponctuation ?

    Merci d'avance

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 986
    Billets dans le blog
    6
    Par défaut
    1) La solution stupide consiste à retirer à la volée (donc dans le SELECT...)tout ce qui n'est pas chiffre pour faire la comparaison...
    2) La solution intelligente consiste à retirer définitivement tous ces caractères inutiles par un UPDATE.
    3) La solution parfaite consiste à contrôler la saisie (par une contrainte de validation) ou corriger la saisie (par un déclencheurs) et retirer définitivement tous ces caractères inutiles par un UPDATE

    La solution 1 non seulement va consommer beaucoup de temps, mais ne sera jamais indexables !

    Voici un extrait de mon prochain livre sur le langage SQL :

    Nom : Le langage SQL, théorie et pratique - extrait CH2 bruit exemple téléphone.jpg
Affichages : 224
Taille : 481,8 Ko

    A +
    Images attachées Images attachées  
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2003
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 020
    Par défaut
    Pour le moment je ne peux pas mettre à jour toutes les données mais ca sera discuté en réunion dès que possible. Les données arrivant de divers logiciels, on a parfois des surprises.

    Pour le moment j'ai pris la solution la moins élégante que j'avais trouvé , à savoir utiliser un translate pour virer tous les caractères inutiles. J'espérais que le full-text m'apporterais une solution à ce sujet mais tant pis...

    Merci,

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 986
    Billets dans le blog
    6
    Par défaut
    Non, le fulltext sera pire : chaque groupe de chiffre sera un "mot" différent !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2003
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 020
    Par défaut
    Ok je reste sur ma solution de départ que je trouve non élégante mais qui fonctionnera pour ce dont j'ai besoin.

    Merci,

Discussions similaires

  1. Recherche sans accents
    Par cerede2000 dans le forum Requêtes
    Réponses: 1
    Dernier message: 12/05/2007, 21h36
  2. Recherche sans tenir compte des accents
    Par killerjeff dans le forum Access
    Réponses: 6
    Dernier message: 27/01/2007, 10h19
  3. Moteur de recherche sans bdd
    Par taly dans le forum Langage
    Réponses: 4
    Dernier message: 29/06/2006, 10h47
  4. faire une recherche sans tenir compte de la casse
    Par richard038 dans le forum SQL
    Réponses: 5
    Dernier message: 11/10/2005, 09h07

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