Le comptage du nombre de lignes renvoyées par une requête MySQL est crucial pour diverses opérations de base de données. Cet article fournit des solutions complètes pour cette tâche, adaptées à différents scénarios et techniques.
La méthode la plus simple pour obtenir le total Le nombre de lignes consiste à parcourir le résultat et à incrémenter un compteur. Cependant, MySQL propose une fonction intégrée, mysql_num_rows, qui fournit un décompte direct des lignes. Par exemple, en PHP, vous pouvez utiliser mysqli_num_rows comme suit :
<code class="php"><?php $result = mysqli_query($link, "SELECT * FROM table1"); $num_rows = mysqli_num_rows($result); echo "$num_rows Rows\n"; ?></code>
Pour compter les lignes qui répondent à des critères spécifiques, utilisez la fonction COMPTE(*). Par exemple, pour compter les lignes où la barre est égale à « valeur » :
SELECT COUNT(*) FROM foo WHERE bar= 'value';
Si vous utilisez la clause LIMIT mais souhaitez connaître le nombre total de lignes sans appliquer la limite, utilisez SQL_CALC_FOUND_ROWS suivi de SELECT FOUND_ROWS(). Par exemple :
<code class="sql">SELECT SQL_CALC_FOUND_ROWS * FROM foo WHERE bar="value" LIMIT 10; SELECT FOUND_ROWS();</code>
Cependant, notez que SQL_CALC_FOUND_ROWS est obsolète depuis MySQL 8.0.17 et sera supprimé dans les versions ultérieures. Il est recommandé d'utiliser une requête distincte pour calculer le décompte.
Pour les grandes tables, il peut être nécessaire d'exécuter une requête distincte pour le décompte. inefficace. Au lieu de cela, envisagez de mettre en cache le décompte en exécutant une fois une requête plus simple et en la réutilisant avant de lancer des requêtes plus complexes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!