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 :

Problème jointure avec LIKE CONCAT


Sujet :

Requêtes PostgreSQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Février 2013
    Messages : 155
    Points : 36
    Points
    36
    Par défaut Problème jointure avec LIKE CONCAT
    Bonjour,

    J'essaye de joindre deux tables (test et pd_actuels) sur le critère suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (LOWER(test.modele) LIKE CONCAT('%', LOWER(pd_actuels.manufacturer_reference), '%'))
    Je m'attends donc à avoir en sortie toutes les lignes de "test" avec 'modele' contenu dans 'manufacturer_reference' de "pd_actuels".

    Exemple : '992251'(test) est contenu dans 'SS-992251'(pd_actuels)

    Cependant, Postgres m'affiche aussi les lignes dans lesquelles 'pd_actuels.manufacturer_reference' contenu dans 'test.modele'
    Exemple : '1408248040' (test) --> '140' (pd_actuels)

    Est-ce normal? Si oui, comment forcer Postgres à faire ce que je veux?

    Merci d'avance

    Cordialement, idate.

  2. #2
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 590
    Points
    3 590
    Billets dans le blog
    8
    Par défaut
    Salut
    Essaye...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Position(LOWER(test.modele) IN LOWER(pd_actuels.manufacturer_reference))>0
    Pour le comportement de PostgreSQL, c'est normale puisque '1408248040' LIKE '%140%' (la chaine 140 est dans 1408248040 ou encore la chaine 1408248040 contient 140 ) est vrai.
    @+
    Le monde est trop bien programmé pour être l’œuvre du hasard…
    Mon produit pour la gestion d'école: www.logicoles.com

  3. #3
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour

    Citation Envoyé par idate Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (LOWER(test.modele) LIKE CONCAT('%', LOWER(pd_actuels.manufacturer_reference), '%'))
    Je m'attends donc à avoir en sortie toutes les lignes de "test" avec 'modele' contenu dans 'manufacturer_reference' de "pd_actuels".
    Non, c'est l'inverse : vous aurez toutes les lignes pour lesquelles pd_actuels.manufacturer_reference est contenu dans test.modele

Discussions similaires

  1. Jointure avec like ou contains
    Par olibara dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/09/2010, 07h34
  2. [Like] Jointure avec like?
    Par userB dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 09/08/2007, 10h17
  3. Jointure avec like et '%'
    Par derfatypik dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/05/2006, 17h12
  4. Problémé avec LIKE est %
    Par lassmust dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 03/10/2005, 17h00
  5. [Access]Problème de sript avec LIKE
    Par Oberown dans le forum ASP
    Réponses: 3
    Dernier message: 06/10/2004, 17h55

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