Maison  >  Article  >  développement back-end  >  Comment déterminer le nombre total de résultats dans MySQL avec décalage et limite ?

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

DDD
DDDoriginal
2024-10-23 10:56:30797parcourir

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

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

Lors de la mise en œuvre de la pagination avec décalage et limite, il est crucial de déterminer le nombre total de résultats pour calculer les pages nécessaires. Bien qu'exécuter la requête deux fois (une fois avec et sans LIMIT) puisse sembler redondant, il existe de meilleures approches.

MySQL fournit un moyen de récupérer le nombre total de résultats sans requête supplémentaire à l'aide de SQL_CALC_FOUND_ROWS. En ajoutant ce mot-clé avant la requête principale, MySQL calcule le nombre total de lignes qui auraient été renvoyées sans la clause LIMIT.

Voici un exemple :

<code class="sql">SELECT SQL_CALC_FOUND_ROWS *
FROM directory_listing
WHERE category_id = <category_id>
LIMIT offset, limit;</code>

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

$query = $this->db->query('SELECT FOUND_ROWS() AS total_count;');
$total_count = $query->first_row()->total_count;

Cette approche vous permet de récupérer efficacement le nombre total sans exécuter de requête supplémentaire. En utilisant SQL_CALC_FOUND_ROWS, vous pouvez améliorer les performances et l'utilisation des ressources de votre fonctionnalité de pagination.

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