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 :

Compter le nombre d'enregistrement dans plusieurs champs


Sujet :

Requêtes MySQL

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

    Informations forums :
    Inscription : Février 2004
    Messages : 149
    Points : 48
    Points
    48
    Par défaut Compter le nombre d'enregistrement dans plusieurs champs
    Bonjour,
    Je ne sais pas si ce tipe de requête existe ou non, et je n'ai pas réussi à trouver des informations.

    Partons de la table suivante :

    Nom de la table : Matable
    _______________________
    Nom | Age | Age2 |
    |
    John Douze Deux |
    Pierre Douze Douze |
    Jean Douze Trois |
    _______________________|

    Ce que j'essaye de de faire, c'est calculer le nombre de fois que le nom douze apparaît dans les enregistrements.

    Dans notre cas, je voudrais donc la valeur : 4

    Mais en partant d'une requête comme celle si :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $Q= mysql_query("SELECT SUM(Douze) as total FROM Matable WHERE Age ='Douze' ");
    $R= mysql_fetch_array($Q);
    $Nb_Douze = $R['total'];
    Le résultat est 3, car le code compte 1 pour la ligne Pierre, au lieu de 2.

    Avez vous une solution autre que de faire la somme colonne par colonne (car en réalité j'ai 90 colonnes ?

  2. #2
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Bonjour,

    tu peux faire une bidouille du style :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT SUM(
       CASE 
          WHEN age='douze' AND age2='douze' THEN 2
          WHEN age='douze' THEN 1
          WHEN age2='douze' THEN 1
          ELSE 0
       END
    ) AS total FROM Matable

    Pour la somme colonne par colonne j'ai pas mieux que l'idée de le faire en php dynamiquement avec des tableaux par exemple

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

    Informations forums :
    Inscription : Février 2004
    Messages : 149
    Points : 48
    Points
    48
    Par défaut
    Merci de t'as réponse.

    Dans le cas du tableau simple , avec 3 colonnes effectivement c'est une solution.

    Mais j'ai énormément de colonne, avec se code je devrais écrire toutes les combinaison possible.

    Imaginons avec 3 colonnes d'age :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    WHEN age='douze' AND age2='douze' OR age2='douze' AND age3='douze' THEN 2 
    OR age='douze' AND age3='douze' THEN 2 ...
    Avec 3 ca va encore, mais avec +de 90 ça fait 90² soit 8100 conditions ...

  4. #4
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Plus de 90 colonnes ? Problème de modélisation peut être ?

    Sinon de toute manière, tu ne pourras pas t'astreindre dans tous les cas de figures possibles (du moins je pense), à te palucher tous les champs à la main. MySQL ne permet pas de boucler sur les champs à la manière d'un langage sur un tableau par exemple

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/07/2007, 08h26
  2. Compter le nombre de A dans un champs
    Par crovette51101 dans le forum Access
    Réponses: 3
    Dernier message: 24/11/2006, 15h41
  3. Réponses: 4
    Dernier message: 15/04/2006, 19h41
  4. Compter le nombre de caracteres dans un champs
    Par joxbl dans le forum Langage SQL
    Réponses: 1
    Dernier message: 24/02/2006, 14h37
  5. [SQL][ACCESS]Compter le nombres d'enregistrement dans deux..
    Par pc152 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 05/06/2004, 12h30

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