Anzahl der Datensätze ermitteln
Markus
- datenbank
0 Sven Rautenberg0 _roro0 Sven Rautenberg0 shn
0 Frank (no reg)0 ilja
Hallo,
gibt es eigentlich eine bessere Alternative zu folgender Abfrage (um die Anzahl der Datensätze zu ermitteln?):
//START
$sql = mysql_query("SELECT * FROM XXX WHERE Level>1");
$count = mysql_num_rows($sql);
echo$count;
//ENDE
Danke und Grüsse,
Markus
Moin!
gibt es eigentlich eine bessere Alternative zu folgender Abfrage (um die Anzahl der Datensätze zu ermitteln?):
$sql = mysql_query("SELECT * FROM XXX WHERE Level>1");
$count = mysql_num_rows($sql);
echo$count;
Wenn du nur die Anzahl der Datensätze brauchst:
SELECT count(*) as zahl FROM tab WHERE bedingung
$zahlzeile = mysql_fetch_assoc(...);
$anzahl = $zahlzeile['zahl'];
Das spart dir, dass die Datenbank die gesamten Datensätze herausfinden und zu PHP in einen Puffer übertragen muß - das kosten nämlich alles Zeit und Speicherplatz, den man besser nicht unnötig verschwendet.
- Sven Rautenberg
Moin!
SELECT count(*) as zahl FROM tab WHERE bedingung
Etwas schlanker als mit * gehts mit count(feldname)
roro
Moin!
SELECT count(*) as zahl FROM tab WHERE bedingung
Etwas schlanker als mit * gehts mit count(feldname)
Nur, wenn man NULL-Werte nicht mitzählen will.
- Sven Rautenberg
Servus,
Nur, wenn man NULL-Werte nicht mitzählen will.
oder man ein Feld angibt, das keine NULL-Werte enthält (z.B. id).
Gruss
Patrick
Servus,
würden wir dies bitte mal konkret beweisen wollen?
Vorzugsweise sollte man dann aber auch eine Spalte nehmen, die, wie Sven auch schon meinte, keine Nullwerte enthalten kann, denn sonst bekäme man die Anzahl der in dieser Spalte gefüllten "Zellen" und nicht die Anzahl Datensätze der gesamten Tabelle.
Ergo eignet sich der Primärschlüssel am besten. Aber dann sollte das DBMS so intelligent sein, COUNT(*) und COUNT(PK-Feld) gleich auszuführen. Nun gut, vielleicht macht MySQL auch hier wieder eigene Extrawürstchen. :)
Ciao, Frank
yo,
Etwas schlanker als mit * gehts mit count(feldname)
genau umgekehrt ist es richtig, es geht nicht performanter als mit *
Ilja