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

Requête MySql sur champ contenant des virgules


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité2
    Invité(e)
    Par défaut Requête MySql sur champ contenant des virgules
    Bonjour,

    J'ai une table 'page' avec un champ 'group_id' contenant une chaine "1,2,3".
    Si je fais une requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Select * From page where group_id = 1
    Bizarrement, cela fonctionne...

    Si je fais une requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Select * From page where group_id = 2
    Cela ne fonctionne pas et me semble normale.

    je pourrait faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Select * From page where group_id like '%2%'
    Mais cela me retournerait également les résultat pour les group_id = 12 et 22,et...

    Existe t'il une fonction permettant de "d'analyser" un champ contenant des séparateurs svp ?

    Merci.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Notamment pour cette raison, dans une base de données relationnelles, un champ n'est pas censé contenir plusieurs valeurs.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Invité2
    Invité(e)
    Par défaut
    Oui mais comme je l'ai déjà vu en pratique... J'aimerais faire pareil

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT *
          FROM pages
          WHERE group_id
          REGEXP '[[:<:]]2[[:>:]]'
    Mais j'aimerai faire cette requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT * FROM pages P 
    INNER JOIN groups G 
             ON P.REGEXP '[[:<:]]U.group_id[[:>:]]' = G.group_id
    INNER JOIN users U 
             ON U.group_id = G.group_id 
    WHERE U.user_id = 2
    une idée ? Merci.

    Je continue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT *
          FROM pages P
    INNER JOIN groups G 
         ON FIND_IN_SET( G.group_id, P.group_id )
    INNER JOIN users U 
         ON U.group_id = G.group_id
    WHERE U.user_id = 2
    On dirait que cela fonctionne...
    Dernière modification par Invité2 ; 02/03/2011 à 15h12.

Discussions similaires

  1. select sur champ contenant des parenthèses
    Par fmlb25 dans le forum Requêtes
    Réponses: 1
    Dernier message: 17/01/2013, 16h43
  2. [MySQL] php enregistrer un champ contenant des virgules
    Par yveslens dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 02/10/2012, 16h48
  3. Requête MySQL sur des dates
    Par amazon dans le forum Requêtes
    Réponses: 1
    Dernier message: 12/09/2009, 10h30
  4. Réponses: 14
    Dernier message: 23/07/2007, 18h29
  5. Réponses: 5
    Dernier message: 03/11/2005, 17h54

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