Comptage des lignes avec SELECT et LIMIT dans MySQL
Dans MySQL, la clause LIMIT peut être utilisée pour restreindre le nombre de lignes renvoyées par un requête. Cependant, lorsque vous utilisez LIMIT, il peut être difficile d'obtenir également le nombre total de lignes de la table qui satisfont aux conditions de la requête.
Considérez la requête suivante, qui récupère les 10 premières lignes d'une jointure entre deux tables. , table1 et table2, en fonction de certaines conditions (cond1, cond2, ..., condN) :
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 récupérer le nombre total de lignes qui satisfont à ces conditions sans émettre une autre requête sans LIMIT, MySQL fournit le mot-clé SQL_CALC_FOUND_ROWS. En incorporant SQL_CALC_FOUND_ROWS dans la requête initiale, MySQL calcule le nombre total de lignes avant d'appliquer la clause LIMIT :
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
Après avoir exécuté cette requête, le nombre total de lignes peut être obtenu à l'aide de la requête distincte suivante :
SELECT FOUND_ROWS();
En combinant ces deux requêtes, vous pouvez à la fois limiter le nombre de lignes renvoyées et récupérer le nombre total de lignes, sans avoir besoin d'une requête supplémentaire requête.
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!