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

Mary-Kate Olsen
Libérer: 2024-10-23 13:21:01
original
752 Les gens l'ont consulté

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
Copier après la connexion

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

SELECT FOUND_ROWS()
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!