Maison  >  Article  >  base de données  >  Comment récupérer le nombre total de lignes même en utilisant la pagination avec LIMIT en SQL ?

Comment récupérer le nombre total de lignes même en utilisant la pagination avec LIMIT en SQL ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-27 15:29:01807parcourir

How do you retrieve the total number of rows even when using pagination with LIMIT in SQL?

Récupérer le total des lignes même en utilisant la pagination avec LIMIT

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.

SQL_CALC_FOUND_ROWS et FOUND_ROWS()

À 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().

Obsolète dans MySQL 8.0

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>

Conclusion

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn