Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment puis-je compter le nombre de lignes renvoyées par une requête MySQL ?

Obtenir le nombre total de lignes dans un résultat de requête...

Vous pouvez simplement itérer le résultat et les compter. Vous ne dites pas quelle langue ou bibliothèque client vous utilisez, mais l'API fournit un mysql_num_rows fonction qui peut vous indiquer le nombre de lignes dans un résultat.

Ceci est exposé en PHP, par exemple, sous la forme mysqli_num_rows une fonction. Comme vous avez modifié la question pour mentionner que vous utilisez PHP, voici un exemple simple utilisant les fonctions mysqli :

$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";

Obtenir le nombre de lignes correspondant à certains critères...

Utilisez simplement COUNT(*) - voir Compter les lignes dans le manuel MySQL. Par exemple :

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

Obtenir le nombre total de lignes lorsque LIMIT est utilisé...

Si vous avez utilisé une clause LIMIT mais que vous voulez savoir combien de lignes vous obtiendriez sans elle, utilisez SQL_CALC_FOUND_ROWS dans votre requête, suivi de SELECT FOUND_ROWS( );

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

SELECT FOUND_ROWS();

Pour les très grandes tables, cela ne sera pas particulièrement efficace, et vous feriez mieux d'exécuter une requête plus simple pour obtenir un décompte et de la mettre en cache avant d'exécuter vos requêtes pour obtenir des pages de données.