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

Langage SQL Discussion :

Recherche élaborée avec like


Sujet :

Langage SQL

  1. #1
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Points : 9 402
    Points
    9 402
    Par défaut Recherche élaborée avec like
    Bonjour,

    Je souhaite dans une liste de ste ressortir toute les magasins "BUT".
    Ne sachant à quel emplacement se trouve le mot BUT j'utilise l'instruction LIKE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select * from Societe where Nom like '%BUT%'
    cela ressort bien les magasins BUT mais aussi ceux qui on la suite de caractère BUT dans leur nom, ex : DISTRIBUTION.

    Avez vous une astuce pour remédier à cela car la je sèche ?

    Merci pour votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    bonjour,


    au lieu d’utiliser un LIKE utilisez un ... =

  3. #3
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Points : 9 402
    Points
    9 402
    Par défaut
    Merci pour ta réponse, mais les noms de magasins ne contiennent pas que le mot BUT et celui ci ne se trouve pas toujours au début

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    si vous n'arrivez pas à donner une règle pour ressortir les lignes cibles, le SGBD n'y arrivera jamais non plus.


    Mais bon idéallement, votre table Société devrait être rattachée à une entité de type "Enseigne" (ou franchise, ou...).


    Ceci permettrai d’avoir le résultat que vous voulez assez facilement.

  5. #5
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Points : 9 402
    Points
    9 402
    Par défaut
    la règle est de sortir que les noms contenant le mot BUT sans ceux contenants BUT dans un mot.
    ce n'est peut être pas faisable

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 115
    Points : 28 493
    Points
    28 493
    Par défaut
    Quel SGBD utilises-tu ? Dans quelle version ?

  7. #7
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Points : 9 402
    Points
    9 402
    Par défaut
    je crois avoir trouvé une méthode en ajoutant un espace à la fin de BUT + une recherche avec les noms finissant par BUT (ca ne marchera pas pour toutes mes recherches mais bon)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    where Destinataire like '%BUT %'
    	or Destinataire like '%BUT'
    a moins qu'il y ait mieux ...

    J'utilises SQL Server 2005

  8. #8
    Membre chevronné
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Points : 1 806
    Points
    1 806
    Par défaut
    Vous pouvez plutôt essayer d'ajouter un espace avant ou un espace après :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    WHERE Destinataire LIKE 'BUT %'   -- commence par BUT + espace
    	OR Destinataire LIKE '% BUT'  -- finit par espace + BUT
    	OR Destinataire LIKE '% BUT %' -- contient espace + BUT + espace

  9. #9
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 920
    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 920
    Points : 51 712
    Points
    51 712
    Billets dans le blog
    6
    Par défaut
    Le plus simple est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHERE ' ' || Destinataire || ' ' LIKE '% BUT %'
    Ceci en SQL normatif.

    A +

  10. #10
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Points : 9 402
    Points
    9 402
    Par défaut
    oui, avec ces solutions j'arrive a boucler tous les cas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    (Destinataire like '% BUT %'
    				or Destinataire like '% BUT' 
    				or Destinataire like 'BUT %'
    				or Destinataire = 'BUT')
    Merci a vous pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème nom en utf8 dans la base, recherche avec like
    Par mokadjo dans le forum Requêtes
    Réponses: 3
    Dernier message: 20/08/2009, 23h42
  2. [MySQL] moteur de recherche boucle avec like et and
    Par Overstone dans le forum PHP & Base de données
    Réponses: 24
    Dernier message: 09/02/2009, 18h36
  3. recherche avec like ou containing dans une table détail
    Par Issam dans le forum Langage SQL
    Réponses: 4
    Dernier message: 21/07/2008, 19h05
  4. recherche d'une chaine avec Like
    Par pierre2410 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 25/05/2007, 12h37
  5. Recherche d'un mot avec LIKE sur plusieurs champs
    Par reynhart dans le forum Langage SQL
    Réponses: 16
    Dernier message: 26/11/2004, 18h41

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