Maison >développement back-end >tutoriel php >Comment puis-je calculer efficacement les résultats totaux dans les requêtes MySQL avec décalage et limite ?
Comment déterminer les résultats totaux avec décalage et limite dans les requêtes MySQL
Dans les scénarios de pagination utilisant Codeigniter ou des frameworks PHP/MySQL similaires, cela devient Il est crucial de déterminer le nombre total de résultats dans un tableau pour calculer le nombre total de pages. Bien que la méthode standard d'exécution d'une deuxième requête sans limite de fonctionnalité semble inefficace sur le plan informatique, il existe une solution alternative qui optimise ce processus.
Utilisation de SQL_CALC_FOUND_ROWS
MySQL fournit une fonctionnalité spéciale fonction connue sous le nom de SQL_CALC_FOUND_ROWS. En incluant cette instruction avant une requête avec des clauses limit et offset, la base de données garantit que le nombre total de lignes qui auraient été renvoyées sans limite est stocké dans une variable interne spéciale. Cela permet une récupération efficace du nombre total sans avoir besoin d'une requête supplémentaire.
Par exemple, la requête suivante inclut SQL_CALC_FOUND_ROWS :
SELECT * FROM my_table WHERE category_id = ? ORDER BY id LIMIT 10 OFFSET 20
Pour récupérer le nombre total, exécutez simplement la commande requête suivante :
SELECT FOUND_ROWS()
Cela renverra le nombre total de lignes de la table qui satisfont à la clause Where, quels que soient les paramètres de décalage ou de limite. En divisant cette valeur par la valeur limite, vous pouvez obtenir le nombre total de pages requises pour la pagination.
En utilisant SQL_CALC_FOUND_ROWS, la pagination devient plus efficace en éliminant le besoin de plusieurs appels à la base de données et en garantissant des calculs précis pour le total. nombre de pages.
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!