Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/11/2010, 19h24   #1
Futur Membre du Club
 
Inscription : février 2004
Messages : 148
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 148
Points : 18
Points : 18
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 :
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 ?
covin85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2010, 22h51   #2
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Bonjour,

tu peux faire une bidouille du style :

Code sql :
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
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2010, 23h41   #3
Futur Membre du Club
 
Inscription : février 2004
Messages : 148
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 148
Points : 18
Points : 18
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 :
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 ...
covin85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2010, 23h47   #4
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
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
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h40.


 
 
 
 
Partenaires

Hébergement Web