Datenbanksätze zählen

Simi

Angesehenes Mitglied
Hi all,

Manchmal habe ich das Gefühl ich habe mein wissen im Büro verloren.
huh.gif

Ich weiss wie ich die Datensätze der Felder zusammen zähle, aber ich möchte alle Datensätze der Datenbank zusammen zählen.

Kann mir jemand einen Gedankenstoss geben? Google habe ich auch schon versucht...

Danke im Voraus für eure Antworten.

Gruss
Disastro
 
... in php und mysql kein Problem - ich hoffe wir sprechen auch vom Gleichen
smile.gif


wikipedia sagt:
QUOTE
Ein Datensatz ist eine abgeschlossene Einheit innerhalb einer Datenbank. Ein Datensatz enthält typischerweise mehrere Datenfelder, die sich in der Struktur und Beschaffenheit in jedem weiteren Datensatz derselben Datei oder Datenbank wiederholen.



... in php würde das dann so aussehen:

CODE
<?php

$conn= mysql_connect("localhost", "username", "password");
mysql_select_db("database", $conn);

$result = mysql_query("SELECT * FROM table1", $conn);
$num_rows = mysql_num_rows($result);

echo "$num_rows Rows\n";

?>



Grüsse, Rico
 
Deine Methode ist nich sehr sinnvoll... Eleganter und schneller ist es mit dem hier:
CODE
<?php

$conn= mysql_connect("localhost", "username", "password");
mysql_select_db("database", $conn);

$result = mysql_query("SELECT COUNT(*) as anzahl FROM table1", $conn);
$row = mysql_fetch_assoc($result);

echo $row['anzahl'];
?>


smile.gif
 
Nun könnte man ja noch Fragen, für welche Engine unter MySQL es gesucht wird, ich hoffe es geht hier um MyISAM (bzw. ISAM) oder MEMORY (bzw. HEAP).

Ansonsten ist die Methode nicht mehr unbedingt so schnell und elegant...



MfG Sascha Ahlers
 
Hi all,

Danke für die Antworten. Auf folgende Lösung bin ich auch gestossen und muss ehrlich sagen, denke auch das sie eleganter ist:

CODE

<?php

$conn= mysql_connect("localhost", "username", "password");
mysql_select_db("database", $conn);

$result = mysql_query("SELECT COUNT(*) as anzahl FROM table1", $conn);
$row = mysql_fetch_assoc($result);

echo $row['anzahl'];
?>




Die Engine ist MyISAM. Aber so zähle ich die Summe aller Datensätze in der Tabelle. Ich möchte aber alle Datensätze der Datenbank.

Muss ich also zuerst x querys erstellen (für jede Tabelle) und dann alle summieren? Ich habe nämlich auch schon daran gedacht, dachte jedoch, dass es bestimmt der falsche Weg ist. So wie das aussieht hatte ich aber doch Recht mit meiner Vermutung?

Danke und Gruss

Gruss
Disastro
 
QUOTE (Simi @ Sa 8.7.2006, 7:39)Die Engine ist MyISAM. Aber so zähle ich die Summe aller Datensätze in der Tabelle. Ich möchte aber alle Datensätze der Datenbank.

Muss ich also zuerst x querys erstellen (für jede Tabelle) und dann alle summieren? Ich habe nämlich auch schon daran gedacht, dachte jedoch, dass es bestimmt der falsche Weg ist. So wie das aussieht hatte ich aber doch Recht mit meiner Vermutung?

Im Prinzip ja. Besser ist es allerdings, wenn Du die vielen Befehle mit Union All verkettest und nur einen einzigen Befehl an die Datenbank sendest.

Allerdings ist die Fragestellung bei sinnvoll normalisierten Tabellen unsinnig - sind die Daten sinnvoll normalisiert?

PS: Zur offenbar besonderen mySql-Performance kann ich nix sagen. Auf dem Microsoft-SqlServer wird für Count(*) bei existierendem Primärschlüssel ohnehin nur auf diesen zurückgegriffen, so daß die Tabelle gar nicht angefaßt wird - dementsprechend ist auch die Performance (bei Transaktionssicherheit) hoch.
 
An das verketten habe ich auch gedacht. Jedoch wie realisiere ich das? Habe es nämlich auch schon versucht.

Gruss
Disastro
 
Zurück
Oben