IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

[MySQL]Compter les résultats sans la condition limite


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut [MySQL]Compter les résultats sans la condition limite
    Salut,
    je cherche à compter les résultats d'une requête sans la condition limite, je crois qu'il y a une commande CALC_FOUND_ROWS ou un truc du style mais je ne peux pas m'en servir (Mysql < 4.0)

    Je fais donc 2 requêtes mais j'ai un gros problème sur la 2e qui ne me donne pas du tout le résultat escompté :

    Voici la requête pour récupérer les enregistrements :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT bib_articles.id, bib_articles.description
     FROM bib_articles, bib_bulletins
     WHERE bib_bulletins.id_article = bib_articles.id
     AND bib_articles.description LIKE '%direction%'
     ORDER BY num_bulletin asc
     LIMIT 0, 40

    et la requête pur récupérer le nombre d'enregistrements sans la condition limit :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT count(*) AS records_count
     FROM bib_articles, bib_bulletins
     WHERE bib_bulletins.id_article = bib_articles.id
     AND bib_articles.description LIKE '%direction%'

    La première me rapatrie bien les 10 enregistrements contenant 'direction' mais la seconde me retourne 11 pour records_count. Il m'ajoute 1 car un des enregistrements de bib_articles est lié à 2 bulletins.

    bib_articles
    id | description
    3 | blabla

    bib_bulletins
    id_article | num_bulletin
    3 | 125
    3 | 212

    Comment je peux faire pour avoir le nombre d'enregistrements retourné par la requête 1 sans limite ? J'ai essayé divers group by mais je suis un peu perdu.

    Merci d'avance ^^

  2. #2
    Membre émérite Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Par défaut
    LIMIT 0,40 => tu limite ta recherche aux 40 première requête donc si tu veux compter le nombre de résultat 2 solutions: soit tu réécri la même requête avec le paramètre count soit tu utilise la fonction mysql_num_rows().

    L'utilisation de la fonction t'évite de refaire un appel à ta base de donnée.

  3. #3
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Salut et merci pour ta réponse.
    En fait je veux le nombre de résultats sans la condition limit donc je ne peux pas utiliser mysql_num_rows(), la seule solution est donc de réécrire la requête je pense. Seulement j'avais un problème avec le count(*) sur une jointure qui ne me retournait pas le bon nombre. J'ai résolu le problème en effectuant un count(distinct(id))).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Filter et compter les lignes (sans doublon)
    Par harkoko dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 08/08/2011, 11h20
  2. [XL-2003] Compter les occurences selon une condition sur une autre colonne
    Par juvamine dans le forum Excel
    Réponses: 4
    Dernier message: 13/05/2009, 11h08
  3. Réponses: 5
    Dernier message: 15/10/2008, 09h08
  4. [MySQL] MySQL, comparer les chaînes sans tirés et sans espaces
    Par cmako dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 03/08/2007, 00h37
  5. MySQL: obtenir les résultats de la dernière insertion
    Par TNorth dans le forum Requêtes
    Réponses: 2
    Dernier message: 31/05/2006, 17h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo