Maison >base de données >tutoriel mysql >Comment récupérer efficacement le nombre total de lignes avec la pagination dans MySQL ?
Obtention du nombre total de lignes avec LIMIT
Lors de l'exécution de requêtes SQL avec pagination, il est souvent nécessaire d'obtenir le nombre total de lignes. En règle générale, cela nécessite d'exécuter la requête deux fois, une fois sans la clause LIMIT pour déterminer le nombre total.
Cependant, il existe un moyen plus efficace d'y parvenir sans recourir à plusieurs requêtes.
SQL_CALC_FOUND_ROWS
Depuis MySQL 4.0.0, l'option SQL_CALC_FOUND_ROWS peut être utilisée. Il demande à MySQL de calculer le nombre total de lignes même lorsqu'une clause LIMIT est présente.
Pour utiliser cette option, ajoutez-la simplement après l'instruction SELECT dans la requête principale. Ensuite, exécutez une requête distincte pour récupérer le nombre de lignes à l'aide de la fonction FOUND_ROWS().
SELECT SQL_CALC_FOUND_ROWS name, email FROM users WHERE name LIKE 'a%' LIMIT 10; SELECT FOUND_ROWS();
Remarque : Bien que SQL_CALC_FOUND_ROWS nécessite deux requêtes, c'est généralement plus rapide que d'exécuter deux fois la requête principale. . Cependant, depuis MySQL 8.0.17, cette option est obsolète et sera supprimée dans une prochaine version.
Alternative : COUNT()
Comme alternative, vous Vous pouvez utiliser la fonction COUNT() dans une requête distincte pour obtenir le nombre total de lignes.
SELECT COUNT(*) FROM tbl_name WHERE id > 100;
Cette méthode nécessite également deux requêtes, mais il s'agit d'une approche plus récente et préférée.
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!