Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann ich die Anzahl der Zeilen zählen, die eine MySQL-Abfrage zurückgegeben hat?

Alle Zeilen in einem Abfrageergebnis abrufen...

Sie könnten das Ergebnis einfach iterieren und sie zählen. Sie sagen nicht, welche Sprache oder Client-Bibliothek Sie verwenden, aber die API bietet einen mysql_Anzahl_Zeilen Funktion, die Ihnen die Anzahl der Zeilen in einem Ergebnis mitteilen kann.

Dies wird beispielsweise in PHP als mysqli_num_rows Funktion. Da Sie die Frage bearbeitet haben, um zu erwähnen, dass Sie PHP verwenden, ist hier ein einfaches Beispiel für die Verwendung von mysqli-Funktionen:

$link = mysqli_connect("localhost", "user", "password", "database");

$result = mysqli_query($link, "SELECT * FROM table1");
$num_rows = mysqli_num_rows($result);

echo "$num_rows Rows\n";

Ermittle die Anzahl der Zeilen, die einigen Kriterien entsprechen...

Verwenden Sie einfach COUNT(*) - siehe Zeilen zählen im MySQL-Handbuch. Zum Beispiel:

SELECT COUNT(*) FROM foo WHERE bar= 'value';

Alle Zeilen erhalten, wenn LIMIT verwendet wird...

Wenn Sie eine LIMIT-Klausel verwendet haben, aber wissen möchten, wie viele Zeilen Sie ohne sie erhalten würden, verwenden Sie SQL_CALC_FOUND_ROWS in Ihrer Abfrage, gefolgt von SELECT FOUND_ROWS( );

SELECT SQL_CALC_FOUND_ROWS * FROM foo
   WHERE bar="value" 
   LIMIT 10;

SELECT FOUND_ROWS();

Bei sehr großen Tabellen ist dies nicht besonders effizient, und Sie sollten besser eine einfachere Abfrage ausführen, um eine Anzahl zu erhalten, und diese zwischenspeichern, bevor Sie Ihre Abfragen ausführen, um Seiten mit Daten zu erhalten.