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 MySQL Discussion :

Problème avec LIKE


Sujet :

Requêtes MySQL

  1. #1
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut Problème avec LIKE
    Bonjour,

    Bon et bien je ne suis pas très fort en requête SQL/MySQL.

    Donc mon problème est que j'aimerais écrire quelque chose de la sorte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "... class.TRClass_Name LIKE %parent.TRParentClass_IdParentClass% ..."
    Problème, le variable de LIKE ne peut, semble t'il, être dynamique

    Y a-t-il un moyen pour reproduire mes besoins.

    Je peux bien entendu écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "... class.TRClass_Name LIKE parent.TRParentClass_IdParentClass ..."
    Qui revient semble t'il à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "... class.TRClass_Name = parent.TRParentClass_IdParentClass ..."
    Mais ce n’est pas ce que je souhaite !

    Si quelqu'un à les connaissances nécessaire pour m'aider, cela serait avec un grand plaisir d'apprendre comment effectuer cette manipulation, si c'est possible en MySQL

    Merci

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 641
    Points
    4 641
    Par défaut
    perso, jai rien compris...

  3. #3
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Oups désolé!

    Bon je vais mettre un exemple cela va être plus clair

    Avec
    //cas 1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "... class.TRClass_Name LIKE %parent.TRParentClass_IdParentClass% ..."
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    class.TRClass_Name = "toto1"
    parent.TRParentClass_IdParentClass = "toto"
    résultat -> OK

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    class.TRClass_Name = "toto1"
    parent.TRParentClass_IdParentClass = "toto1"
    résultat -> OK

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    class.TRClass_Name = "toto1"
    parent.TRParentClass_IdParentClass = "toto2"
    résultat -> FALSE
    Avec
    //cas 2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "... class.TRClass_Name = parent.TRParentClass_IdParentClass ..."
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    class.TRClass_Name = "toto1"
    parent.TRParentClass_IdParentClass = "toto"
    résultat -> FALSE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    class.TRClass_Name = "toto1"
    parent.TRParentClass_IdParentClass = "toto1"
    résultat -> OK

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    class.TRClass_Name = "toto1"
    parent.TRParentClass_IdParentClass = "toto2"
    résultat -> FALSE
    Ce que je souhaite trouver est le premier cas...
    Sauf que la syntaxe utilisée n'est pas valide en MySql !

    Comment je peux écrire ma requête pour arriver au même résultat ?

  4. #4
    Membre confirmé Avatar de Christophe Charron
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 920
    Points : 606
    Points
    606
    Par défaut
    Bonsoir,
    ce ne sont pas simplement les quotes qui manquent, pour encadrer la valeur ?
    Cordialement,
    Christophe Charron

  5. #5
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Bonsoir,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "... class.TRClass_Name LIKE %parent.TRParentClass_IdParentClass% ..."
    ==

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "... class.TRClass_Name LIKE '%parent.TRParentClass_IdParentClass%' ..."
    == pas bon

    Avec, c'est pas tout à fait pareil, car il cherche la chaîne "parent.TRParentClass_IdParentClass".... ce que je ne veut pas non plus

    Je demande peut être trop à MySQL…

    Cybher ou Christophe, si vous avez d’autres idées, je prends.
    Si ce que je cherche n’est pas encore clair, je peux essayer d'expliciter encore plus….

    Finalement j’aimerais ceci -> '%parent.TRParentClass_IdParentClass%' mais que « parent.TRParentClass_IdParentClass » soit évalué !

  6. #6
    Membre confirmé Avatar de Christophe Charron
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 920
    Points : 606
    Points
    606
    Par défaut
    Bonjour,
    Citation Envoyé par Ti-R
    Bonsoir,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "... class.TRClass_Name LIKE '%parent.TRParentClass_IdParentClass%' ..."
    Donne ta ligne de requête complète que moi j'écrirai de la sorte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql="select toto from titi where tata like '%".parent.TRParentClass_IdParentClass."%' order by commeilveut";
    Cordialement,
    Christophe Charron

  7. #7
    Membre éprouvé
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Points : 1 249
    Points
    1 249
    Par défaut
    Pour rechercher une chaine, utiliser "POSITION" ou "LOCATE" et vérifier que le résultat n'est pas 0 marche.

    Sinon chez moi (5.0.21) je peux faire "LIKE CONCAT('%', maColonne, '%')" mais dans mon souvenir ça ne marche pas sur les vieux mysql (à tester).

  8. #8
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Cela à l'air de correspondre à mes besoins Merci,

    Je test et je vous tiens au courant !

  9. #9
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    La solution à Sivrît fonctionne parfaitement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...class.TRClass_Name LIKE CONCAT('%', parent.TRParentClass_IdParentClass, '%')...
    En tout cas, Merci à tout le monde d'avoir planché sur mon problème.

    ps: Ma version de MySQL est 4.1.9 et cela fonctionne bien

  10. #10
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Juste pour information

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...WHERE class.TRClass_Name REGEXP CONCAT('^(.*) ', parent.TRParentClass_IdParentClass, '$')...
    J'ai ajouté une contrainte supplémentaire avec REGEXP
    Vraiment je suis FAN de CONCAT encore merci !

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

Discussions similaires

  1. petit problème avec like
    Par kapotocho dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 21/01/2008, 17h09
  2. [ADO] Problème avec LIKE dans requête paramétrée
    Par _skip dans le forum Connexion aux bases de données
    Réponses: 7
    Dernier message: 04/11/2007, 20h53
  3. Problème avec like dans une requête SQL
    Par Boublou dans le forum SQL
    Réponses: 2
    Dernier message: 16/08/2007, 15h46
  4. Problèmes avec LIKE
    Par sami_c dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 26/09/2006, 12h16
  5. Problémé avec LIKE est %
    Par lassmust dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 03/10/2005, 17h00

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