2010-12-14 13 views
0

dazu tags aplied werden, zu coments, ...Wie kann man wissen, wie oft ein Wert in den Datenbanken ist? und für alle Werte?

seine Fragen zum Beispiel Top-20-Wiederholungen für eine atribute in einer Tabelle zu erhalten ..

Ich meine, ich weiß, ich frage für ein ausgewähltes Attribut mit den mysql_num_rows, aber wie mache ich es, um alle zu kennen?

Zum Beispiel

Die beliebtesten Farben: Red -100000 blau -5000 weiß -200 und so weiter ...

wenn jemand kann mir einen Tipp geben .. Dank!

Antwort

1
SELECT `name`, count(*) as `count` FROM `colors` 
GROUP BY `name` 
ORDER BY `count` DESC 
1

Sie möchten diese Berechnung in der Datenbank durchführen, nicht in Ihrer Anwendung. Normalerweise sollte eine Abfrage der folgenden Form in Ordnung sein:

SELECT color_id, COUNT(product_id) AS number 
FROM products 
GROUP BY color_id 
ORDER BY number DESC 
LIMIT 20 

Es wird schneller auf diese Weise, wie nur die Wertzahl-Daten aus der Datenbank an die Anwendung gesendet werden. Wenn Sie die Indizes korrekt eingerichtet haben (z. B. auf color_id), werden die Schenkel glatter.