Comptage des lignes au-delà de LIMIT dans les requêtes MySQL
Problème :
Lors de l'exécution d'une requête MySQL avec une clause LIMIT, il peut être difficile d'obtenir le nombre total de lignes de la table qui satisfont aux conditions de requête. Cela est particulièrement vrai lors de l'utilisation d'instructions JOIN complexes et de clauses WHERE.
Solution :
Pour résoudre ce problème, MySQL fournit le mot clé SQL_CALC_FOUND_ROWS. Lorsque ce mot-clé est utilisé, il demande à MySQL de calculer le nombre total de lignes qui auraient été récupérées sans la clause LIMIT.
Exemple :
Considérez le MySQL suivant requête :
SELECT A.ID, A.NAME, B.ID, B.NAME FROM table1 A JOIN table2 B ON ( A.ID = B.TABLE1_ID ) WHERE cond1, cond2, ..., condN LIMIT 10
Pour obtenir le nombre total de lignes sans la clause LIMIT, exécutez les deux instructions suivantes dans la même order :
SELECT SQL_CALC_FOUND_ROWS A.ID, A.NAME, B.ID, B.NAME FROM table1 A JOIN table2 B ON ( A.ID = B.TABLE1_ID ) WHERE cond1, cond2, ..., condN LIMIT 10 SELECT FOUND_ROWS();
La première instruction calcule le nombre total de lignes satisfaisant aux conditions de requête, tandis que la deuxième instruction récupère le nombre total de la fonction FOUND_ROWS().
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!