Recherche du nombre de lignes malgré LIMIT dans les requêtes MySQL
Les requêtes MySQL avec la clause LIMIT vous permettent de restreindre le nombre de lignes renvoyées. Mais que se passe-t-il si vous devez également récupérer le nombre total de lignes qui correspondent à la requête ?
Requête avec la clause LIMIT et le nombre de lignes
Considérez la requête suivante qui récupère un sous-ensemble de lignes de deux tables utilisant JOIN :
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
Cette requête renverra les 10 premières lignes qui satisfont aux conditions spécifiées.
Solution utilisant SQL_CALC_FOUND_ROWS
Pour obtenir le nombre total de lignes, vous pouvez utiliser la fonction SQL_CALC_FOUND_ROWS en conjonction avec 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 SELECT FOUND_ROWS();
La fonction SQL_CALC_FOUND_ROWS définit une variable interne de nombre de lignes avant exécuter la requête avec la clause LIMIT. La fonction FOUND_ROWS() récupère ensuite la valeur de cette variable, représentant le nombre total de lignes qui auraient été renvoyées sans la LIMIT.
En utilisant cette technique, vous pouvez obtenir à la fois le sous-ensemble limité de lignes et le nombre total de lignes sans avoir besoin d'une requête supplémentaire.
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!