Anzahl der Datensätze in einer MySQL-Tabelle

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
misterx10
Mitglied
Beiträge: 70
Registriert: 06.09.2004 15:15
Wohnort: Großbeeren
Kontaktdaten:

Anzahl der Datensätze in einer MySQL-Tabelle

Beitrag von misterx10 »

gibt es eine mysql-funktion, mit der ich die anzahl der datensätze in einer tabelle herausfinden kann??
Die Berlin-Brandenburg phpBB User Group
Wer kämpft kann verlieren,
wer nicht kämpft hat bereits verloren...
Benutzeravatar
MrMind
Mitglied
Beiträge: 464
Registriert: 29.11.2003 17:14
Wohnort: Darmstadt/Odw
Kontaktdaten:

Beitrag von MrMind »

Das Stichwort ist: mysql_num_rows()

Mfg
MrMind
Selbst ist der Coder
Coder unter Linux
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag 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:
Jensemann
Ehemaliges Teammitglied
Beiträge: 2549
Registriert: 25.02.2002 01:00

Beitrag 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.
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag 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.
Antworten

Zurück zu „Coding & Technik“