Mysql - Übereinstimmungen finden und zählen
Mark
- datenbank
0 Frank (no reg)0 Mark0 Thomas Meinike0 Mark0 Thomas Meinike0 Mark
Hallo Ihrs,
Ich vesuche es mal auf den Punkt zu bringen...
-----------
| spalte |
-----------
| 1 |
-----------
| 2 |
-----------
| 1 |
-----------
| 3 |
-----------
| 2 |
-----------
| 1 |
-----------
Die 1 kommt also dreimal, die 2 zweimal und die 3 kommt einmal vor.
Wie komme ich mit "einer" Abfrage an die Anzahl der Treffer? Als Wert kommen immer nur 1,2 oder 3 in Frage.
Gruss und danke, Mark
Hi
SELECT spalte, Count(spalte) Treffer
FROM tabelle
GROUPY BY spalte
-> du solltest dich in Zukunft doch mal mit dem Thema Aggregats- und Gruppierungsfunktionen unter ANSI SQL '92 auseinandersetzen. Dazu gibt es reichlich Bücher.
Viele Grüße,
Frank
SELECT spalte, Count(spalte) Treffer
FROM tabelle
GROUPY BY spalte
Hallo Frank,
danke erstmal!
der GROUPY war gut, damit muss man erst einmal rechnen *g*
So weit war ich schon, die Abfrage liefert mir aber nur die Anzahl derer mit dem Wert 1, nicht jedoch die mit 2 und 3
Gruss, Mark
Hallo,
So weit war ich schon, die Abfrage liefert mir aber nur die Anzahl derer mit dem Wert 1, nicht jedoch die mit 2 und 3
Mit den genannten Daten sollte diese Abfrage
mysql> SELECT feld,COUNT(feld) FROM tabelle GROUP BY feld;
zu diesem Ergebnis
+------+-------------+
| feld | COUNT(feld) |
+------+-------------+
| 1 | 3 |
| 2 | 2 |
| 3 | 1 |
+------+-------------+
fuehren.
MfG, Thomas
Hallo,
$mysql="SELECT feld,COUNT(feld) Treffer FROM tabelle GROUP BY feld";
$result=mysql_query($mysql, $con);
$ergebnis=mysql_fetch_array($result)
foreach($ergebnis as $key => $value)
{
echo $key . ":" . $value;
}
dann bekomme ich nur:
0:1
feld:1
1:129
Treffer:129
Da fehlen mir also noch die Ergebnisse von 2 und 3.
Gruss
Hallo,
$result=mysql_query($mysql, $con);
$ergebnis=mysql_fetch_array($result)foreach($ergebnis as $key => $value)
{
echo $key . ":" . $value;
}dann bekomme ich nur:
0:1
feld:1
1:129
Treffer:129Da fehlen mir also noch die Ergebnisse von 2 und 3.
Du fragst auch nur einen Datensatz ab. Lege mal eine while-Schleife um den foreach-Ausdruck.
Ich erhalte mit
while($zeile=mysql_fetch_array($result))
{
print $zeile["feld"]." : ".$zeile["Treffer"]."<br>\n";
}
die Ausgabe
1 : 3
2 : 2
3 : 1
MfG, Thomas
Hallo Thomas,
vielen Dank, die Whileschleife war also mein Problem. Habe an der falschen Stelle nach dem Fehler gesucht.
Es funktioniert jetzt einwandfrei..., danke nochmal :)
Gruss, Mark