Maison >base de données >tutoriel mysql >Comment compter les lignes lors de l'utilisation de SELECT avec LIMIT dans MySQL ?

Comment compter les lignes lors de l'utilisation de SELECT avec LIMIT dans MySQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-10 13:09:03508parcourir

How to Count Rows When Using SELECT with LIMIT in MySQL?

Comptage des lignes lors de l'utilisation de SELECT avec LIMIT dans MySQL

Dans MySQL, l'utilisation de la clause LIMIT dans une requête SELECT limite le nombre de lignes renvoyées . Cependant, si votre requête inclut également des conditions de filtrage complexes, vous souhaiterez peut-être connaître le nombre total de lignes qui satisfont à ces conditions, même si elles ne sont pas renvoyées par LIMIT.

Pour y parvenir, MySQL fournit le SQL_CALC_FOUND_ROWS modificateur. Voici comment l'utiliser dans votre requête :

SELECT SQL_CALC_FOUND_ROWS A.ID, A.NAME, B.ID, B.NAME
FROM table1 A
JOIN table2 B ON ( A.ID = B.TABLE1_ID )
WHERE
    cond1, cond2, ..., condN
LIMIT 10;

SELECT FOUND_ROWS();

Dans cette requête :

  • La première instruction SELECT utilise SQL_CALC_FOUND_ROWS pour demander à MySQL de calculer le nombre total de lignes correspondant aux critères .
  • La deuxième instruction SELECT utilise la fonction FOUND_ROWS() pour récupérer le nombre de lignes calculé.

Cette approche vous permet de récupérer à la fois un ensemble de résultats paginé avec LIMIT et la ligne complète. compter dans une seule requête de base de données. Notez que SQL_CALC_FOUND_ROWS doit être utilisé dans la même connexion et avant que la fonction FOUND_ROWS() ne soit appelé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!

Déclaration:
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