Recherche de résultats totaux avec décalage et limite dans MySQL
La pagination permet aux utilisateurs de parcourir de grands ensembles de données en morceaux gérables. Cependant, déterminer le nombre total de pages nécessite de connaître le nombre total de résultats. Lorsque vous utilisez offset et limit pour la pagination, il semble inefficace d'exécuter la même requête deux fois, une fois avec une limite et une fois sans.
SQL_CALC_FOUND_ROWS : une solution
Pour résoudre Dans ce problème, MySQL fournit un mot-clé spécial : SQL_CALC_FOUND_ROWS. En ajoutant ce mot-clé au début de votre requête, MySQL calculera et stockera le nombre total de lignes qui auraient été renvoyées sans la clause LIMIT.
Exemple de requête :
<code class="sql">SELECT SQL_CALC_FOUND_ROWS * FROM table_name WHERE category_id = '1' ORDER BY date_created DESC LIMIT 10 OFFSET 20;</code>
Récupération du nombre total de résultats :
Après avoir exécuté la requête ci-dessus, vous pouvez utiliser le code PHP suivant pour récupérer le nombre total de résultats :
<code class="php">$totalRows = $db->query('SELECT FOUND_ROWS() AS total')->row()->total;</code>
Avantages de SQL_CALC_FOUND_ROWS :
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!