Bonjour à tous,
Voilà, je dois afficher une liste de count sur les items d'une table.
Concrêtement, mon item peut avoir plusieurs status : -2, -1, 0, 1, 2
Est-ce qu'il serait plus rapide de faire une boucle FOR créant des variables compteur quand je rencontre l'état ?
OU
Faire autant de requête count que j'ai de status possible pour mon item ? (Sachant que les statuts sont définies et ne changeront pas)
Nohman
Oui, le sql sera toujours plus rapide que de récupérer les enregistrements et de les parcourir
Bonjour Nohman
fais un count par status
SELECT COUNT(*) AS cnt , status FROM matable GROUP BY status
mais tu risques de louper ceux qui n'ont aucun enregistrement
donc tu peux utiliser 5 variables ou un tableau associatif que tu initialises à zéro puis tu y mets le résultat de la requête avec une boucle for
Donc les multiples count valent mieux qu'une boucle ? (c'était plus ça la question).
C'était plus une question de qui va mieux le gérer plûtot que comment faire ^^. Mais merci quand même.
Si je te dis que 10 millions de produits et 10 catégories. Je veux récupérer le nombre de produits par catégorie. Vas-tu récupérer les 10 millions d'entrée ou 10 entrées? Je comprend que ta question concernait plutôt les performences de la base de données, mais s'imaginer jusqu'où notre application va grandir, c'est pas toujours mauvais. Idéalement, on essaye toujours d'en faire le plus possible du côté du SGBD afin d'éviter de le faire dans notre programme. C'est une des raisons pourquoi on travail pas directement sur un fichier (avec la sérialization).
Ramz.