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 :

REGEXP sur une sous requête :s


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 5
    Points : 5
    Points
    5
    Par défaut REGEXP sur une sous requête :s
    Bonjour a tous,

    Je tente de faire une requete SQL qui à moi me semble bizare...

    j'ai cherché un peu sur la toile mais je trouve nul part de sujet qui parle de REGEXP sur une sous requete, donc j'ai tenté plusieurs truc et celui là me semble correct mais SQL ne me renvoit rien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT login, reseau
    FROM users
    WHERE login REGEXP CONCAT( '^((.*);)?', (
     
    SELECT reseau
    FROM users
    WHERE login = 'michel'
    LIMIT 1
    ), '(;(.*))?$' );
    sachant que 'reseau' de michel contient : 'michelblanc;jean',
    alors que si il ne contient que : 'michelblanc' ça marche...

    quelqu'un a-t'il déjà fait ce genre de requetes et est-ce normal que ça ne marche pas?

    merci de m'aider

  2. #2
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Bonjour,

    Normalement tu ne devais pas avoir de soucis pour concaténer tes chaînes et construire ta regexp. Ca c'est la bonne nouvelle
    Pour moi c'est pas le SQL qu'il faut regarder. Ta rq fait ce que tu lui demande.
    'michelblanc;' ne matche pas le pattern que tu donnes. Il faudrait 'michel.*;' pour que ça marche.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    mmmh...

    en fait michel a des amis qui sont, michelblanc et jean... qui eux meme ont des amis...

    le michel dans la requete là fait réference a michel

    mais je crois que c pas la bonne méthode apres recherche... il vaut mieu faire ça avec une table et des ids etc...

    qu'en pensez vous?

  4. #4
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Merci de tenir compte des CONSEILS... à lire AVANT de POSTER, en particulier préciser le SGBD utilisé.

    Par exemple, pour Oracle, les expressions régulières ne sont supportés (à ma connaissance) qu'à partir de la 10g ...

  5. #5
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Re,

    Si j'ai compris, te prends pas la tête avec les REGEXP, 1 LIKE devrait suffire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT	r.login, 
    	r.reseau
    FROM	User u
    INNER JOIN User r
    WHERE	u.reseau LIKE CONCAT(CONCAT('%', r. login), '%')
    AND	u.login = 'michel';
    Citation Envoyé par GrimR
    mais je crois que c pas la bonne méthode apres recherche... il vaut mieu faire ça avec une table et des ids etc...
    Complètement d'accord.
    Une auto-relation sur la table User avec 1 ligne par couple login,login_amis est largement préférable.

    A +

Discussions similaires

  1. Erreur sur une sous requête
    Par Nikimizi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/07/2013, 11h58
  2. Problème sur une sous-requête
    Par benoiteuskadi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/02/2013, 15h45
  3. erreur sur une sous requête
    Par xavier81 dans le forum Développement
    Réponses: 10
    Dernier message: 15/03/2011, 14h11
  4. Jointure externe sur une sous-requête
    Par pgentils dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/01/2008, 09h34
  5. Réponses: 3
    Dernier message: 06/10/2006, 14h55

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