Maison  >  Article  >  développement back-end  >  Comment compter le total des résultats de requête dans MySQL avec l'optimisation du décalage et des limites ?

Comment compter le total des résultats de requête dans MySQL avec l'optimisation du décalage et des limites ?

DDD
DDDoriginal
2024-10-23 13:08:30529parcourir

How to Count Total Query Results in MySQL with Offset and Limit Optimization?

Récupération du total des résultats de requête dans MySQL avec décalage et limite

Dans les scénarios de pagination, il est crucial de déterminer le nombre total de résultats dans un Requête MySQL pour calculer le nombre total de pages requises. Une approche consiste à exécuter la requête deux fois, une fois avec la limite pour récupérer les résultats paginés et une autre sans limite pour compter le nombre total de lignes. Cependant, cette approche peut s'avérer inefficace.

Entrez SQL_CALC_FOUND_ROWS : une solution plus optimisée consiste à utiliser le modificateur SQL_CALC_FOUND_ROWS dans votre requête initiale. En incluant ce modificateur, MySQL calcule le nombre total de lignes correspondantes avant d'appliquer la limite. Vous pouvez ensuite exécuter une instruction SELECT FOUND_ROWS() pour récupérer le nombre total.

Utilisation :

Pour utiliser SQL_CALC_FOUND_ROWS, ajoutez-le simplement au début de votre requête :

<code class="sql">SELECT SQL_CALC_FOUND_ROWS ...</code>

Après avoir exécuté la requête, exécutez ce qui suit pour récupérer le nombre total de lignes :

<code class="sql">SELECT FOUND_ROWS();</code>

Exemple :

Disons vous avez une requête comme celle-ci :

<code class="sql">SELECT * FROM `directory`
WHERE `category_id` = 12
ORDER BY `name` ASC
LIMIT 10 OFFSET 20;</code>

Pour calculer le nombre total de résultats, vous exécuterez la requête supplémentaire suivante :

<code class="sql">SELECT FOUND_ROWS();</code>

Cela renverra le nombre total de lignes dans la table du répertoire aveccategory_id égal à 12, vous permettant de déterminer efficacement le nombre total de pages requises pour la 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