Maison  >  Article  >  développement back-end  >  Comment puis-je trouver le nombre total de résultats dans la pagination MySQL avec décalage et limite ?

Comment puis-je trouver le nombre total de résultats dans la pagination MySQL avec décalage et limite ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-23 10:33:02370parcourir

How Can I Find the Total Count of Results in MySQL Pagination with Offset and Limit?

Recherche de résultats totaux avec décalage et limite dans MySQL

La pagination permet aux utilisateurs de parcourir de grands ensembles de données en morceaux gérables. Cependant, déterminer le nombre total de pages nécessite de connaître le nombre total de résultats. Lorsque vous utilisez offset et limit pour la pagination, il semble inefficace d'exécuter la même requête deux fois, une fois avec une limite et une fois sans.

SQL_CALC_FOUND_ROWS : une solution

Pour résoudre Dans ce problème, MySQL fournit un mot-clé spécial : SQL_CALC_FOUND_ROWS. En ajoutant ce mot-clé au début de votre requête, MySQL calculera et stockera le nombre total de lignes qui auraient été renvoyées sans la clause LIMIT.

Exemple de requête :

<code class="sql">SELECT SQL_CALC_FOUND_ROWS * 
FROM table_name 
WHERE category_id = '1' 
ORDER BY date_created DESC
LIMIT 10 OFFSET 20;</code>

Récupération du nombre total de résultats :

Après avoir exécuté la requête ci-dessus, vous pouvez utiliser le code PHP suivant pour récupérer le nombre total de résultats :

<code class="php">$totalRows = $db->query('SELECT FOUND_ROWS() AS total')->row()->total;</code>

Avantages de SQL_CALC_FOUND_ROWS :

  • Efficacité accrue :Élimine le besoin d'exécuter la requête deux fois.
  • Précision : Garantit que le décompte total est correct, même si les données sous-jacentes changent entre les requêtes.
  • Simplicité : Facile à mettre en œuvre avec un seul mot-clé.

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