2010-12-03 6 views
2

Was ich versuche zu tun ist (hoffentlich) einfach, aber ich habe einfach nicht die richtige Syntax. Ich möchte alle unterschiedlichen Werte in einer Tabelle mit einer Anzahl von wie viele Datensätze für jeden Wert zurückgeben.Wie gibt man eindeutige Werte und ihre Anzahl zurück?

Also, in PHP, ich habe:

$result = mysql_query("SELECT DISTINCT tagName FROM tagTable"); 
while($row = mysql_fetch_array($result)){ 
    echo("<p>" . $row['tagName']) . "</p>"); 
} 

Das funktioniert gut. Die eindeutigen Werte werden zurückgegeben! Aber wie kann ich nun die Anzahl der verschiedenen Werte anzeigen lassen? Ich würde etwas auf die Wirkung will:

echo("<p>" . $row['tagName']) . $tagCountGoesHere . "</p>"); 

Antwort

8

Sie sollten in der Lage sein zu bekommen, dass mit der GROUP BY Klausel:

SELECT tagName, count(tagName) AS tagCount FROM tagTable GROUP BY tagName 
+0

Okay ... Ich werde es versuchen. Aber wie zeige ich dann die Anzahl in der Echo-Anweisung an? – Sam

+0

Wie du normalerweise mit dem title tagCount. zB: echo $ row ['tagCount']; –

+0

Das hat den Trick gemacht! BRILLANT! Vielen Dank! – Sam

2
SELECT tagName, count(*) as TagCount 
FROM tagTable 
group by tagname 
+0

nicht besser wäre, zu Graviszeichen-Flucht ' Zählen? Um Verwechslungen aufgrund von MySQL-Funktionsnamen zu vermeiden? – redShadow

+0

@redShadow: Sie könnten richtig, ich benutze MySQL nicht; Ich werde umbenennen – RedFilter

1
SELECT DISTINCT tagName, COUNT(*) FROM tagTable GROUP BY tagName 
+1

DISTINCT ist unnötig, wenn Sie eine GROUP BY-Klausel verwenden. –

Verwandte Themen