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 :

Problème ORDER BY COUNT()


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 99
    Par défaut Problème ORDER BY COUNT()
    Bonjour,

    Voila j'ai une petite requête imbriquée qui me pose un petit souci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE sujets SET note = (SELECT note, COUNT(*) AS nb_note FROM sujets_notes GROUP BY note ORDER BY nb_note DESC LIMIT 1) WHERE sujet_id = 1
    J'ai logiquement une erreur : [FONT=Courier New]#1241 - Operand should contain 1 column(s) [/FONT]
    [FONT=Courier New][/FONT]
    [FONT=Courier New]Le problème c'est que si je retire le [/FONT][FONT=Verdana]COUNT(*) AS nb_note, ORDER BY nb_note DESC ne fonctionne plus.[/FONT]

    J'ai aussi essayé en vain :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE sujets SET note = (SELECT note FROM sujets_notes GROUP BY note ORDER BY COUNT(*) DESC LIMIT 1) WHERE sujet_id = 1
    Comment alors faire un tri en fonction du nombre de lignes comptées sans mettre le COUNT dans le SELECT où alors peut être existe il un moyen pour que la requête ne renvoi pas de colonne COUNT() ?

    Merci pour votre aide

  2. #2
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 185
    Par défaut
    <?php
    $select
    = mysql_query("SELECT note FROM sujets_notes WHERE sujet_id = 1 GROUP BY note ORDER BY COUNT(*) DESC LIMIT 1");

    mysql_query("UPDATE sujets SET note = ".$select." WHERE sujet_id = 1")
    ?>
    Sa serait déja un peu mieux aprés test dans ton phpmyadmin etape par etape .

    +++

    mathieu !

  3. #3
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Par défaut
    Essaye cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT @noteRepresentative = note, COUNT(*) AS nb_note
    FROM sujets_notes
    WHERE sujet_id = 1
    GROUP BY note
    ORDER BY nb_note DESC
    LIMIT 1 ;
     
     
    UPDATE sujets 
    SET note = @noteRepresentative
    WHERE sujet_id = 1 ;
    (tu récupères d'abord la note qui t'intéresse et ensuite tu fais le UPDATE)
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  4. #4
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 185
    Par défaut
    A oui moi c'était du php dsl :p mais bon il a compris je pense

  5. #5
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Par défaut
    C'est surtout qu'il manquait le WHERE sujet_id = 1 dans la 1ère requête, sinon il prend l'ensemble des notes pour tous les sujets.
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

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

Discussions similaires

  1. [SQL] Problème avec SELECT COUNT(*)
    Par jpascal dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/11/2006, 12h37
  2. MySQL 4.1.11 : problème ORDER BY
    Par Manu0086 dans le forum Requêtes
    Réponses: 3
    Dernier message: 10/02/2006, 12h41
  3. Problème sur un count
    Par lamf dans le forum Requêtes
    Réponses: 5
    Dernier message: 27/01/2006, 19h17
  4. [MYSQL] Problème ORDER BY sur deux champs
    Par LE NEINDRE dans le forum Requêtes
    Réponses: 8
    Dernier message: 14/10/2005, 16h46
  5. [SQL] Jointure,Group BY et ORDER BY COUNT qui marche pas
    Par Stef784ever dans le forum Langage SQL
    Réponses: 8
    Dernier message: 17/08/2005, 12h28

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