Lors de l'exécution de requêtes MySQL complexes avec pagination (clauses "LIMIT"), obtenir le nombre total de lignes peut être difficile. Exécuter la requête deux fois, une fois sans la clause LIMIT pour le nombre total, peut s'avérer inefficace.
Heureusement, MySQL a introduit l'option SQL_CALC_FOUND_ROWS, qui vous permet de calculer le nombre total de lignes tout en utilisant la clause LIMIT. Voici comment cela fonctionne :
Exemples de requêtes :
<code class="sql">-- Main query with SQL_CALC_FOUND_ROWS SELECT SQL_CALC_FOUND_ROWS name, email FROM users WHERE name LIKE 'a%' LIMIT 10; -- Second query to get row count SELECT FOUND_ROWS();</code>
Limitations et alternatives :
Bien que SQL_CALC_FOUND_ROWS fournisse une solution pratique, notez que son utilisation est obsolète dans MySQL 8.0.17. Dans la plupart des cas, exécuter la requête deux fois est toujours plus rapide.
Comme alternative, MySQL 8.0 introduit les options optimisées suivantes pour obtenir le nombre de lignes :
En utilisant ces techniques, les développeurs peuvent récupérer efficacement le nombre total de lignes dans leurs requêtes MySQL paginées sans compromettre la vitesse ou les performances.
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!