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 :

Eviter les requêtes multiples


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2011
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Décembre 2011
    Messages : 25
    Par défaut Eviter les requêtes multiples
    Bonjour,

    J'ai besoin d'effectuer plusieurs requêtes pour compter des enregistrements selon leur valeur, et ce sur plusieurs colonnes de ma table.

    Cela me donne des requêtes du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select count(toto) from table where toto < 5
    Puis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select count(toto) from table where toto > 5 and toto < 10
    puis à nouveau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select count(toto2) from table where toto < 5
    etc etc.

    Ma question est donc: y a t-il moyen de faire plus simple que d'aligner 50 requêtes successives pour récupérer un résultat à la fois ?

    La fonction multi_query est-elle une solution ? (c'est effectivement pour faire du php ensuite)

    Merci d'avance

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 953
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 953
    Par défaut
    En effectuant les calculs dans une requête avec CASE, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select count(case when toto < 5 then toto end) as c1,
           count(case when toto > 5 and toto < 10 then toto end) as c2,
           count(case when toto < 5 then toto2 end) as c3
      from table
     where toto < 10 /*Un filtre englobant toutes les données, ou pas de filtre*/

  3. #3
    Membre averti
    Inscrit en
    Décembre 2011
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Décembre 2011
    Messages : 25
    Par défaut
    Je ne connaissais pas CASE, mais ça marche impec.

    Merci pour la réactivité et la qualité de la réponse

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

Discussions similaires

  1. Eviter les doublons dans une requête.
    Par Smint dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 22/03/2017, 16h17
  2. Script + Cron - Comment eviter les lancements multiples
    Par jean-A dans le forum Administration système
    Réponses: 11
    Dernier message: 21/06/2011, 13h55
  3. Eviter les include multiples
    Par ninours23 dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 02/02/2008, 14h41
  4. [Requête]Eviter les doublons
    Par atlantideD dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 19/04/2007, 12h28
  5. Comment eviter les doubons dans une requête?
    Par jyms2006 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 08/03/2006, 14h08

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