Maison >base de données >tutoriel mysql >Comment récupérer le nombre total de lignes même en utilisant la pagination avec LIMIT en SQL ?
Lors de la pagination des résultats avec la clause LIMIT dans SQL, il peut être fastidieux de devoir exécuter la requête deux fois pour obtenir le nombre total de lignes. Cela est particulièrement vrai pour les requêtes complexes dont l’exécution prend beaucoup de temps. Heureusement, il existe une solution qui vous permet de faire cela avec une seule requête.
À partir de MySQL 4.0.0, vous pouvez utiliser l'option SQL_CALC_FOUND_ROWS dans votre requête principale. pour informer MySQL de compter le nombre total de lignes tout en ignorant la clause LIMIT. Cela nécessite que vous exécutiez une deuxième requête pour récupérer le nombre de lignes. Cependant, cette requête est généralement beaucoup plus simple et plus rapide que la requête principale de récupération de données.
Voici comment l'utiliser :
<code class="sql">SELECT SQL_CALC_FOUND_ROWS name, email FROM users WHERE name LIKE 'a%' LIMIT 10; SELECT FOUND_ROWS();</code>
La deuxième requête qui suit immédiatement la première capture la ligne totale compter à l'aide de la fonction FOUND_ROWS().
Dans les versions MySQL 8.0.17 et ultérieures, le modificateur SQL_CALC_FOUND_ROWS et la fonction FOUND_ROWS() ont été obsolètes et seront supprimés dans un version future. La documentation MySQL recommande désormais d'utiliser COUNT à la place pour obtenir le nombre total de lignes.
Par exemple :
<code class="sql">SELECT * FROM tbl_name WHERE id > 100 LIMIT 10; SELECT COUNT(*) WHERE id > 100;</code>
En tirant parti de ces techniques, vous pouvez récupérer efficacement le nombre total de lignes même lorsque vous utilisez la pagination avec la clause LIMIT, améliorant ainsi l'efficacité de vos requêtes et rationalisant votre code.
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!