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

DDD
Libérer: 2024-10-23 13:08:30
original
525 Les gens l'ont consulté

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

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

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

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

<code class="sql">SELECT FOUND_ROWS();</code>
Copier après la connexion
Copier après la connexion

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!

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
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!