Maison  >  Article  >  développement back-end  >  Comment puis-je calculer efficacement les résultats totaux dans les requêtes MySQL avec décalage et limite ?

Comment puis-je calculer efficacement les résultats totaux dans les requêtes MySQL avec décalage et limite ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-23 13:21:01752parcourir

How Can I Efficiently Calculate Total Results in MySQL Queries with Offset and Limit?

Comment déterminer les résultats totaux avec décalage et limite dans les requêtes MySQL

Dans les scénarios de pagination utilisant Codeigniter ou des frameworks PHP/MySQL similaires, cela devient Il est crucial de déterminer le nombre total de résultats dans un tableau pour calculer le nombre total de pages. Bien que la méthode standard d'exécution d'une deuxième requête sans limite de fonctionnalité semble inefficace sur le plan informatique, il existe une solution alternative qui optimise ce processus.

Utilisation de SQL_CALC_FOUND_ROWS

MySQL fournit une fonctionnalité spéciale fonction connue sous le nom de SQL_CALC_FOUND_ROWS. En incluant cette instruction avant une requête avec des clauses limit et offset, la base de données garantit que le nombre total de lignes qui auraient été renvoyées sans limite est stocké dans une variable interne spéciale. Cela permet une récupération efficace du nombre total sans avoir besoin d'une requête supplémentaire.

Par exemple, la requête suivante inclut SQL_CALC_FOUND_ROWS :

SELECT * FROM my_table WHERE category_id = ? ORDER BY id LIMIT 10 OFFSET 20

Pour récupérer le nombre total, exécutez simplement la commande requête suivante :

SELECT FOUND_ROWS()

Cela renverra le nombre total de lignes de la table qui satisfont à la clause Where, quels que soient les paramètres de décalage ou de limite. En divisant cette valeur par la valeur limite, vous pouvez obtenir le nombre total de pages requises pour la pagination.

En utilisant SQL_CALC_FOUND_ROWS, la pagination devient plus efficace en éliminant le besoin de plusieurs appels à la base de données et en garantissant des calculs précis pour le total. nombre de pages.

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