Maison > base de données > tutoriel mysql > Comment puis-je obtenir efficacement le nombre total de résultats pour les requêtes MySQL paginées à l'aide de OFFSET et LIMIT ?

Comment puis-je obtenir efficacement le nombre total de résultats pour les requêtes MySQL paginées à l'aide de OFFSET et LIMIT ?

Patricia Arquette
Libérer: 2024-12-01 00:36:12
original
758 Les gens l'ont consulté

How Can I Efficiently Get the Total Count of Results for Paginated MySQL Queries Using OFFSET and LIMIT?

Détermination des résultats totaux pour les requêtes MySQL paginées avec décalage et limite

Lors de l'implémentation de la pagination dans PHP/MySQL, déterminer le nombre total de résultats est crucial pour calculer le nombre de pages. Au lieu d'exécuter la requête deux fois, envisagez d'utiliser SQL_CALC_FOUND_ROWS.

Exemple :

SELECT SQL_CALC_FOUND_ROWS *
FROM directory_listings
WHERE category_id = ?
LIMIT ? OFFSET ?
Copier après la connexion

Cette requête récupère le nombre de résultats souhaité tout en calculant également le nombre total de résultats éligibles. lignes.

// Execute the query with pagination parameters
$results = $db->query($query, [
    'category_id' => $categoryId,
    'limit' => $limit,
    'offset' => $offset
]);

// Retrieve the found row count
$foundRows = $db->query("SELECT FOUND_ROWS() AS num_rows")->row();

// Calculate total pages
$totalPages = ceil($foundRows->num_rows / $limit);
Copier après la connexion

Avantages :

  • Efficace : une seule exécution de requête au lieu de plusieurs.
  • Précis : fournit un décompte précis des toutes les lignes éligibles, quel que soit pagination.

Remarque :

SQL_CALC_FOUND_ROWS doit être utilisé conjointement avec LIMIT pour calculer avec précision le nombre de lignes et éviter les erreurs de comptage.

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.cn
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