Comment déterminer le nombre total de résultats dans MySQL avec décalage et limite lors de la pagination ?

Barbara Streisand
Libérer: 2024-10-23 12:12:01
original
487 Les gens l'ont consulté

How to Determine Total Result Count in MySQL with Offset and Limit while Paginating?

Détermination du nombre total de résultats dans MySQL avec décalage et limite

La pagination est un aspect crucial du développement Web, permettant un affichage efficace de grands ensembles de données sur plusieurs pages. Lors de l'utilisation de décalages et de limites dans les requêtes MySQL, il est essentiel de déterminer le nombre total de résultats pour calculer la pagination requise.

Une approche consiste à exécuter la requête deux fois : une fois avec la limite pour récupérer les résultats à afficher, et encore une fois sans limite pour compter le nombre total de lignes. Cependant, cette méthode est inefficace et peut peser sur les ressources de la base de données.

Une solution plus efficace consiste à utiliser le mot-clé SQL_CALC_FOUND_ROWS. Ce mot-clé indique à MySQL de calculer le nombre total de lignes qui auraient été renvoyées sans la limite. Le nombre total peut ensuite être récupéré à l'aide de la fonction FOUND_ROWS().

Par exemple, considérons la requête suivante :

SELECT * FROM table_name ORDER BY id LIMIT 10 OFFSET 20;
Copier après la connexion

Pour déterminer le nombre total de lignes, ajoutez SQL_CALC_FOUND_ROWS au début de la requête :

SELECT SQL_CALC_FOUND_ROWS * FROM table_name ORDER BY id LIMIT 10 OFFSET 20;
Copier après la connexion

Après avoir exécuté cette requête, utilisez FOUND_ROWS() pour récupérer le nombre total :

$total_results = $this->db->query('SELECT FOUND_ROWS()')->row()->{'FOUND_ROWS()'};
Copier après la connexion

Cette approche fournit un moyen efficace pour déterminer le nombre total de résultats sans avoir besoin d'une requête distincte. Il économise les ressources de calcul et garantit des performances optimales de la base de données, en particulier pour les grands ensembles de données.

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!