Seite 1 von 1

Anzahl der Datensätze in einer MySQL-Tabelle

Verfasst: 26.11.2004 20:13
von misterx10
gibt es eine mysql-funktion, mit der ich die anzahl der datensätze in einer tabelle herausfinden kann??

Verfasst: 26.11.2004 21:56
von MrMind
Das Stichwort ist: mysql_num_rows()

Mfg
MrMind

Verfasst: 27.11.2004 12:02
von Blutgerinsel
MrMind hat geschrieben:Das Stichwort ist: mysql_num_rows()

Mfg
MrMind
Das beste Stichwort ist MySQL Manual gucken :D

Sonst hab ich der Antwort von MrMind nichts mehr hinzuzufügen :wink:

Verfasst: 28.11.2004 08:11
von Jensemann
Blutgerinsel hat geschrieben: Sonst hab ich der Antwort von MrMind nichts mehr hinzuzufügen :wink:
Ich schon.

Man könnte neben dem MySQL Manual auch mal das von PHP lesen und bemerken das sich mysql_num_rows() auf die Datensätze eines result sets bezieht. Mit andern worten, du müsstest hier erstmal alle Sätze einer Spalte abfragen um dieses Ergebniss dann zu zählen.

Sorry, aber das ist unperformanter Müll.

MySQL liefert die Funktion count(), die genau dafür gedacht ist genannte Aufgabe zu lösen.

SELECT count(field_name) FROM table

und das ergebniss dieses Querys nutzen.

BTW: du kannst theoretisch auch count(*) nutzen, aber auch das ist lahm, weil MySQL dann erst gucken muß welche Felder existieren. Du solltest also immer genau einen feld namen angeben.

Verfasst: 28.11.2004 12:45
von Blutgerinsel
jensemann hat geschrieben: Man könnte neben dem MySQL Manual auch mal das von PHP lesen und bemerken das sich mysql_num_rows() auf die Datensätze eines result sets bezieht. Mit andern worten, du müsstest hier erstmal alle Sätze einer Spalte abfragen um dieses Ergebniss dann zu zählen.
Klar, da aber nach einer MySQL Funktion gefragt wurde habe ich angenommen er möchte aus einer bestehenden Abfrage nachträglich ohne neues absenden eines SQL Statements die Ergebnismenge zählen...
Sorry, aber das ist unperformanter Müll.

MySQL liefert die Funktion count(), die genau dafür gedacht ist genannte Aufgabe zu lösen.

SELECT count(field_name) FROM table

und das ergebniss dieses Querys nutzen.
jep :wink:
BTW: du kannst theoretisch auch count(*) nutzen, aber auch das ist lahm, weil MySQL dann erst gucken muß welche Felder existieren. Du solltest also immer genau einen feld namen angeben.
Das ist so nicht korrekt da:
MySQL Manual meint hat geschrieben: COUNT(*) ist darauf optimiert, das Ergebnis sehr schnell zurückzugeben, wenn es mittels eines SELECT von einer Tabelle abruft, wenn keine weiteren Spalten abgerufen werden und es keine WHERE-Klausel gibt.
Ergo sind Abfragen mit count(*) schneller, da keine Spalte berrücksichtigt werden muss. Würde hier ein Feldnamen stehen müsste MySQL extra dieses Feld im Auge behalten und wäre damit langsamer.